【问题标题】:How to change indentation etc of a piece of code? [duplicate]如何更改一段代码的缩进等? [复制]
【发布时间】:2011-04-01 17:43:46
【问题描述】:

可能的重复:
Code polisher / reformater for C, C++ or Fortran
Best C++ Code Formatter/Beautifier

我在一个 C++ 项目的团队中工作。部分代码是大型外部库的高度修改版本,不符合我们的编码约定。

图书馆使用这种风格:

void main ()
{
  if (somecondition)
    {
    doStuff (some, parameters);
    }
  moreStuff (parameter);
}

而我们的风格是这样的:

int main() {
    if(somecondition) {
        doStuff(some, parameters);
    }
    moreStuff(parameter);
}

(另外,Stack Overflow 上的编辑器无法显示,但他们的代码使用两个空格进行缩进,我们的代码使用制表符)。

鉴于这几乎只是编辑空白,我想有一些程序可以自动完成大部分工作。

【问题讨论】:

  • 有人必须为此编写脚本...
  • 虽然我确信有一些实用程序可以重新格式化您的源代码以更改缩进,但我怀疑这些程序会为您修复未定义的行为(例如,修复main 的返回类型) . :-)
  • @James:这就是我说“最”的原因:P
  • 最好的事情:不要。外部代码应该作为外部代码处理,它不需要遵守你自己的内部规则。认为您应用到库以使其工作的任何修复(真实的,而不是缩进)(包括main 返回类型)都必须应用于您下载的任何新版本。通过仅更改实际行为,您可以制作与格式相比传达语义变化的小差异。然后,您还可以区分旧/新版本并查看需要应用哪些更改以及在何处应用。

标签: c++ coding-style


【解决方案1】:

有很多程序可以为您做到这一点。喜欢:

一些编辑器也可以在运行时修复这些东西,而无需修改实际的源文件。 (我相信 Eclipse/emacs 可以做到这一点)

不过,我还是忍不住要问你为什么要更改的样式。

【讨论】:

    【解决方案2】:

    如果由我决定,我会不理它。相反,我会更改编码样式以明确允许在来自外部源的代码中使用已经建立的编码样式。如果您发现自己想要或需要从上游更新外部库,那么更改代码以匹配您的编码风格将导致不必要的合并噩梦。

    实际上禁止您的项目更新库,只是为了使其符合您的(任意和主观的)编码风格真的值得吗?

    【讨论】:

    • 库5年没有更新了。所以我们不需要担心这个。
    【解决方案3】:

    正如其他人所指出的,AStyle 是一个很好的工具,但是任何好的 IDE 也可以重新格式化源代码。

    例如,在 Vim 中,您可以设置 cinoptions 以匹配您的样式指南,然后 = 命令将根据这些规则重新格式化您的源代码。

    【讨论】:

      【解决方案4】:

      看看我的answer 到类似的question

      基本上你想要AStyle

      【讨论】:

        【解决方案5】:

        有这方面的工具,请参阅 SO 问题 841075。接受的答案是 AStyle。

        【讨论】:

        【解决方案6】:

        大多数现代编辑器完全按照您的意愿行事。

        最简单的可能是使用 eclipse。获取 C++ 插件,然后修改您希望代码在配置中的样子。

        【讨论】:

          【解决方案7】:

          您可以使用 RegEx 将其调整到您想要的确切方式 - 尽管这取决于您想要进行的更改有多复杂。

          【讨论】:

            猜你喜欢
            • 2010-10-12
            • 2020-05-26
            • 2013-03-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多