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

我们希望能够直接从 Visual Studio IDE 重新格式化代码的 C++ block /函数,以便开发人员可以轻松地确保他们插入的新代码符合我们的格式准则。

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

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

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

编辑:链接到的问题推荐了一个工具 - ProFactor's StyleManager - 还有其他类似的工具吗?

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

最佳答案

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

(...) You can then configure your IDE(s) so that their default formatting commands instead use Uncrustify. In Visual Studio, for example, one can set up an external tool. Assuming uncrustify.cfg is next to the solution file, then the command line

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

will reformat the current source file. You can then assign a keyboard mapping (or reassign the one for Edit.FormatDocument, like me) for quick access.

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

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

https://stackoverflow.com/questions/5246170/

相关文章:

python - 在列表上迭代格式字符串

javascript - 使用纯 JavaScript 将电话号码格式化为用户类型

javascript - 不允许在 textarea 中换行

perl - 在 Perl 中处理非常大的数字时,如何禁用科学记数法?

powershell - 在 PowerShell 中导出为 CSV 时如何指定列顺序?

formatting - 好的评论用例

html - 在 Rails 中,如何在文本区域中允许一些 html?

arrays - 填充表格数据的打印输出

php - 保持我的 PHP 漂亮

string - 固定宽度数字格式化python 3