![自动计算“缩进”参数](https://linux22.com/image/1359355/%E8%87%AA%E5%8A%A8%E8%AE%A1%E7%AE%97%E2%80%9C%E7%BC%A9%E8%BF%9B%E2%80%9D%E5%8F%82%E6%95%B0.png)
如何自动分析 C/C++ 源文件并找出缩进参数是否更适合(例如,过滤后产生的变化最小indent
)?
答案1
没有一个常用的工具可以做到这一点,所以你必须自己编写。我会编写一个 Bash 脚本,indent
使用不同的参数调用来创建大量原始源文件的替代版本,然后diff
为每个替代版本找到“最佳”输出,其中“最佳”可能只是更改的行数最少。
我的经验是,如果你知道谁写了原始代码,你就可以分割问题。程序员往往会采用不同的长期格式化习惯。
你应该预料到,即使在最好的情况下,引入的差异indent
也会使 svn/git blame 变得毫无用处。这可能会迫使你要么采用一具体indent
政策全部代码并启动一个具有自动格式化代码的新存储库,否则就放弃整个想法。具有几种不同indent
策略的存储库可能会造成更多的混乱和烦恼,而不是好处。
如果您正在编写新代码,而不仅仅是对现有代码进行小幅更改,那么最佳做法是要求所有贡献者在提交代码之前使用特定indent
或astyle
策略。您也可以使用 svn/git 提交上的钩子自动执行此操作,但这可能会导致编译错误,甚至在极少数情况下出现错误。如果您在组织中工作,而不是运行您是守门人的在线项目,那么您将需要一位具有足够权力来执行该策略的经理,因为大多数程序员已经从多年的经验中知道他们自己的格式是唯一正确的方式,所有其他格式都是无效的。