【发布时间】:2013-01-10 02:02:31
【问题描述】:
我想在提交到我们的 linux 托管的 subversion 存储库时强制执行我们的样式指南中的缩进规则。 我们的缩进规则是 Visual Studio 2010“编辑->高级->格式选择”命令所允许的,缩进设置为 2 个空格。 (这是团队协商的结果——如果我坚持更具侵略性的风格,整个政策就会失去团队的支持)
所以我需要一个可以复制 Visual Studio 使用的相同缩进规则的 unix 工具或脚本。然后我可以从 subveriion 预提交钩子中调用它,如果该工具完全更改了提交的文件,则阻止提交。
我试过查看astyle、bcpp 和indent,但我无法让它们中的任何一个产生与Visual Studio 相同的输出。 astyle 给出了最接近的结果,但坚持缩进行延续不止一个缩进。
针对 cmets 进行编辑:我们的开发人员定期设置新计算机,偶尔(一年几次)忘记正确设置每个开发人员的 VS 缩进选项。直到提交之后很久才发现这一点,此时需要修复大量代码。我们已经检查了发现大部分错误的选项卡。开发人员要求我寻找更好的解决方案来帮助他们避免错误。
【问题讨论】:
-
哎呀。听起来有点极权主义。抱歉,我无能为力,但你有没有想过更简单的事情? ie 扫描文件并检查所有缩进是否为 2 的倍数,并且每个连续行的缩进级别变化不会超过 1。
-
解决核心问题有不同的方法。最简单的方法是定义格式化规则并设置 VS 配置以遵循该模式。另一方面,相信开发人员,不要在提交挂钩上强制执行样式,而是作为代码审查的一部分。如果文件缩进不正确,请提出请求并让程序员修复它(
svn annotate可用于查明是谁进行了更改)。您也可以使用astyle,然后使用一些上下文进行差异,对结果进行后处理以确定差异是否仅在预期的情况下。 -
最好不要缩进。与使用 2 个空格所实现的相比,它可以节省更多空间并使代码的可读性降低。
标签: c++ visual-studio-2010 indentation