【问题标题】:Only want to ever see Allman style code and save K&R style code只想看到 Allman 样式代码并保存 K&R 样式代码
【发布时间】:2011-07-29 17:11:35
【问题描述】:

我们的一位开发人员决定向其他开发人员指示人们应该如何格式化他们的源代码。

我自己,我坚信 Allman 风格的压痕比 K&R 更好。

格式化样式就像宗教一样,总有人不同意。无论有多少证据表明一种比另一种更好,人们都不会接受。

所以我想做的是,每次我在 Eclipse 中打开一个文件时,我都会格式化源代码,这样我就可以看到漂亮的代码。 每次我保存时,它都应该格式化为办公室里指定的样式。

我认为我可以手动执行此操作并为其设置两个热键。 Ctrl-Alt-PgUp:我的方式 Ctrl-Alt-PgDown:高速路

热键选项可能很好,因为这样我就可以验证一切正常,而不是在幕后无形地发生。

Eclipse 有一个格式选项。我需要的是两种格式样式,并将它们分别映射到一个快捷键。这可能吗?如果可以,怎么做?

【问题讨论】:

  • 我想知道这是否通过您的版本控制系统中的挂钩更好地完成。按照想要的方式设置 Eclipse,然后强制您的 VCS 按照您的团队想要的方式提交代码。你用的是什么 VCS?
  • @James:想象一下:A 编辑,以样式 1 保存并提交。 B 编辑,以样式 2 保存并提交。结果:差异中充斥着不相关但非常分散注意力的空白更改。 repo 中的代码应该以一种方式格式化。
  • @James:嗯,通过预先提交挂钩中的自动格式化程序运行所有代码似乎是标准(而且它似乎工作得很好)。
  • 在 K&R 中查看源代码让我工作变慢。
  • @Tom_Fobear:他们显然使用了惯用的手。

标签: java eclipse formatting


【解决方案1】:

非常尊重迈克,如果您无法击败他们,请加入他们。确实,要学会容忍丑陋,就像 djna 建议的那样。我在整个职业生涯中默默地与这场战斗战斗后给出了这个建议。

我相信 Allman 风格的编码在几个有意义的重要方面更好,从代码对齐和明显澄清代码块开始。 Allman 风格的人往往倾向于/容忍更多地使用垂直空白来帮助澄清哪些事情是一起发生的,以及新的步骤或阶段何时开始。

根据我自己的轶事研究,除了对早期先例的致敬之外,最常被引用的 K&R 的主要优势在于,K&R 是一种受到喜欢在一个屏幕上查看更多代码的人所青睐的风格。是的,这是真的,这是主要原因。代码密度。我认为一旦我们在 90 年代初超过 80 x 25 字符控制台屏幕的时代,这个问题就会最终消亡,但唉,但这似乎并不重要。因此,对于那些喜欢代码密度以便一次在一个屏幕上看到更多代码的人来说,我们遭受了数百万行 K&R 样式代码的困扰。 * 叹息 *

底线:你无法赢得一场宗教战争。这不值得努力。在罗马时,像罗马人那样做,学会接受现实。这是一个在心理上触动我们的问题,因为它与权力和控制有关。但是我们都明白,有些事情我们根本没有合法的权力或控制权,所以让这些事情发生并学会适应。这确实是开启您的软件开发职业生涯的正确方式。

【讨论】:

  • 我确实了解到一个人不能改变自己的宗教信仰,即使有证据表明他们是错误的。然而,目前,我在公司内部“拥有”的大部分代码,我将其保留为 Allman。一旦我不得不再次处理大量的 K&R,我可能会寻找,或者编写一个 IDEA 插件,让您看到 Allman 并保存 K&R。顽固?也许。但我拒绝被杂乱的代码拖慢速度。
【解决方案2】:

嗯,似乎古老的辩论又回来了。不幸的是,Eclipse JDT UI 还不支持应用不同的代码格式化程序。

bug no 45423 旨在解决此问题。只要该错误仍未修复,最好的解决方法就是在提交挂钩中应用格式化程序,因为每个项目都与它自己的格式化程序相关联;您甚至不能选择不同的格式化程序应用于文件保存操作(首选项 -> Java -> 编辑器 -> 保存操作)。老实说,我不认为快捷键会起作用。

此外,可能值得研究Questoid Code Formatter 的使用,它似乎是最接近(或唯一)支持您需求的插件。我没有尝试使用它;我只阅读了 Eclipse Marketplace 的描述。

【讨论】:

    【解决方案3】:

    我的建议:学会容忍丑陋。除非您的“与 SCM 中的历史比较”功能非常好,否则格式化时很容易出现虚假差异。

    【讨论】:

    • 因此,我多年来编写的所有格式良好且易于阅读的熟悉代码都被丢弃,取而代之的是丑陋的粘稠粘稠的代码块,我只能坐在那里看着它发生?
    • 好吧,我想我在这么多项目中转来转去,事实上,公司都有自己的风格,我别无选择,只能坚持当前的房子风格。所以我已经习惯了这样的事情。不得不承认,我认为将你漂亮的代码库强制转换为某种新格式是很疯狂的,一定很受伤。
    猜你喜欢
    • 2013-09-11
    • 2013-02-23
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    相关资源
    最近更新 更多