为C#代码寻找可配置的漂亮打印机

时间:2008-11-13 02:48:02

标签: c# formatting pretty-print

我在一个拥有大约10名开发人员的团队中工作。一些开发人员有非常严格的格式需求。我想找到一个漂亮的打印机,我可以配置这些规范,然后添加到构建过程。通过这种方式,无论其他人在从源代码控制中拉下格式时有多么糟糕,它都会显得可以接受。

4 个答案:

答案 0 :(得分:1)

最简单的解决方案是团队领导要求格式并且每个人都使用它。 VS默认值非常好。

杰夫阿特伍德在Stack Overflow上向我们这样做了,当我第一次反叛时,我克服了它:)让一切变得更加轻松!

答案 1 :(得分:1)

编码标准绝对是我们所拥有的。我所谈论的编码格式是由一个头发花白的建筑师施加的,可以说,他的方式设置非常特别。让我们假装我们无法解决人为因素。我一直在寻找一种规避整个人类过程的方法。

视觉工作室默认情况下不能很好地解决换行问题。我只是把这条线切碎了,但是....

ServiceLocator.Logger.WriteDefault(string.format("{0}{1}"
                                                 ,foo
                                                 ,bar)
                                   ,Logging.SuperDuper); 

另一个格式化visual studio的例子并不太热......

if( foo
   && ( bar 
       || baz 
       || apples 
       || oranges)
   && IsFoo()
   && IsBar() ){
   }

Visual Studio在这方面的表现并不好。我们目前正在使用ReSharper来实现格式化的更多粒度,但遗憾的是它在很多方面都有所不同。

尽管编码标准很棒,但不要误会我的意思。作为构建过程的一部分,漂亮的打印机的目标是获得“完美”的代码,无论人们如何关注或计算他们的空间。

代码格式化的边缘情况非常容易解决,因为它是一个定义良好的语法。

就VS默认值而言,我只能说:BSD风格或死!

所以这一切让我完全回过头来说:C#有可配置的漂亮打印机吗?尽管有词汇分析和解析很有吸引力,但我已经填充了YAML C#工具链。

答案 2 :(得分:1)

您的问题是创建NArrange(测试版)的主要目的。它允许重新格式化C#代码,您可以使用一个通用配置文件由整个团队共享。由于它的重点主要是重新排序类和控制区域中的成员,因此它仍然缺少许多必要的格式化选项(尤其是在成员代码行中的格式化)。

正常使用方案是每个开发人员在签入之前运行该工具。我不知道任何人运行它是他们构建过程的一部分,但没有理由你不能,因为它是一个命令行工具。我想到的一个想法是在文件上运行NArrange作为预提交步骤的一部分。如果签入的原始文件内容与源存储库服务器上的NArrange格式化输出不匹配,则开发人员不会重新格式化规则,并且可能会引发签入错误。

有关详细信息,请参阅Using NArrange to Organize C# Code上的CodeProject文章。

答案 3 :(得分:0)

我是Jarrod的第二个回答。如果您有2个开发人员具有相互矛盾的编码偏好,那么让团队的其他成员投票,然后让老板支持多数决策。

此外,尝试自动应用这样漂亮的打印机的问题在于,总会出现例外情况,即您的一揽子编码标准不是最佳或最具可读性的解决方案,并且您将通过压缩它们而失败。自动化工具。

编码标准就是标准。他们不称他们为编码法或编码规则,这是有充分理由的。