使用Visual Studio进行高级(C ++)源代码重新格式化?

时间:2011-03-09 13:02:42

标签: c++ visual-studio formatting

我们希望能够直接从Visual Studio IDE重新格式化代码的C ++块/函数,以便开发人员可以轻松确保它们插入的新代码符合我们的格式指南。 / p>

我找到了Artistic Style tool,它几​​乎涵盖了我们需要的功能。但是,它只能在CLI中处理整个文件,因此对我们想要使用它的方式没有多大帮助。 (整个文件重新格式化肯定不是我们想要的[a]。)

Visual Studio(2005)具有有限的自动格式功能,但AFAICS,这些主要是关于正确的缩进,这有点缺乏。

所以我的问题是,是否有任何工具可以对VS IDE中的选择进行高级重新格式化,或者是否有使用AStyle的VS IDE插件?

修改:与推荐工具相关联的问题 - ProFactor's StyleManager - 还有其他类似的工具吗?

注意[a]:重新格式化整个文件或整个项目树仅对个人项目或初始代码签入有用,恕我直言。对于(大型)团队项目,全面重新格式化会弄乱文件中文件或行的更改历史记录,这使得跟踪谁更改了内容变得更加困难。

3 个答案:

答案 0 :(得分:3)

我发现了一篇博文,介绍了如何将外部代码格式化程序与Visual Studio集成:Per-Project Code Formatting in Visual Studio

  

(...)然后,您可以配置IDE   他们的默认格式化命令   而是使用Uncrustify。在视觉中   例如,Studio可以设置一个   外部工具。假设uncrustify.cfg   在解决方案文件旁边,然后是   命令行

     

-c $(SolutionDir)uncrustify.cfg --no-backup "$(ItemPath)"

     

将重新格式化当前源文件。   然后,您可以指定键盘映射   (或重新分配一个   与我一样的Edit.FormatDocument for   快速访问。

我还没有尝试过,但似乎可以归结为将格式化程序(例如AStlye / Uncrustify)配置为Visual Studio中的外部工具,以便能够在IDE的源文件中调用它。

仍然只是每个文件,但似乎是我找到的更好的想法之一。

答案 1 :(得分:1)

看起来已经有了https://stackoverflow.com/questions/1663794/visual-studio-unmanaged-c-code-formatter

的答案

另外。我知道在KDevelop和code :: blocks中他们有很好的c ++代码重新格式化,你可以非常有效地自定义样式。我喜欢两个..但是code :: blocks现在一直在崩溃:(

答案 2 :(得分:0)

问题有点陈旧,但问题不是。

我使用VS macro通过uncrustify清洗C ++代码,并通过键盘快捷键(ALT + SHIFT + U,我的偏好)触发它。宏在当前活动的编辑器文档上运行uncrustify,将输出发送到临时文件,然后用uncrustify的输出替换当前编辑器的文本。

显然,这个工作流程会更改文件中的所有代码,但频繁使用快捷方式会使代码保持良好和干净。可以想象,当n%的编辑器文本发生变化时,会自动触发宏?我会把它留给EnvDTE大师。