【问题标题】:Eclipse formatter adds space in empty comment linesEclipse 格式化程序在空注释行中添加空间
【发布时间】:2011-10-23 21:55:42
【问题描述】:

eclipse 代码格式化程序在每个空的 Javadoc 注释行中添加一个尾随空格(参见屏幕截图)。

同事的格式化程序总是删除这些空格(从而产生烦人的 SVN 差异)。他声称使用相同的格式化程序设置(XML 文件)。不过,我尝试了格式化程序设置页面的 cmets 选项卡中的所有选项 - 没有成功。

Eclipse 版本之间会有所不同吗? (我相信我使用的是基于 Helios 的 Springsource Tool Suite 2.7.1)

【问题讨论】:

  • STS 2.7.1 默认基于 Indigo。 Helios 作为一个选项提供。
  • 我也在寻找一种方法来告诉 Eclipse 不要在空注释行中添加空格。 “删除尾随空格”保存操作会删除它们,但下次打开文件时,Eclipse 格式化程序会将它们添加回来。这让我疯狂
  • 显然尾随空格删除器首先运行,然后是 Javadoc 的格式化程序 - 呃 - 是的,它非常烦人

标签: eclipse javadoc code-formatting


【解决方案1】:

我也遇到了这个问题,并通过在 日食。

  1. 转到 Search > File 并确保正则表达式是 检查。
  2. 在包含文本字段中输入字符串^([\s]+\*)([\s]+)$
  3. 将搜索限制在 *.java 文件名模式
  4. 按替换(不是搜索)按钮
  5. 确保在替换框中选中正则表达式并使用 字符串 $1 作为替换。随意更换。

这样做是搜索以包含 * 的空格字符开头的行,然后是更多的空格并且没有其他内容。然后它将整行替换为正则表达式的第一个匹配部分,即注释行的初始间距和 *。

【讨论】:

  • 正则表达式应该是^([\s]+\*)([\s]+)$,这就是它在帖子中的写法但它被转义了,显然编辑需要6个字符。
  • 不需要正则表达式:请参阅此解决方案:stackoverflow.com/questions/956771/…
【解决方案2】:

我发现如果你去Preferences → Java → Editor → Content Assist → Save Actions下面的配置大部分时间都可以工作:

  • ☑ 在保存时执行选定的操作
    • ☐格式化源代码
  • ☑ 附加操作
    • 删除所有行的尾随空格

(也就是说,关闭Save Actions中的Format source code选项,但保持Additional actions中的Remove trailing white spaces on all lines开启。)

格式化程序和保存操作将其一决高下,但保存操作似乎在大多数情况下都胜出。这样做的缺点是您需要定期手动格式化代码。

这是使用 Eclipse Juno。

【讨论】:

    【解决方案3】:

    转到首选项 -> Java -> 编辑器 -> 保存操作 并选择 格式化编辑的行

    应用更改后,Javadoc 中的所有尾随空格都将被删除

    注意:“附加操作”->“删除所有行的尾随空格”也必须启用。

    【讨论】:

    • 这只会根据默认添加空格的格式化样式格式化 cmets,所以我看不出这有什么帮助。
    • 啊我明白你的意思了,设置“附加操作”->“删除所有行的尾随空格”也必须启用,否则这无济于事。编辑后的答案是这样说的。
    • “删除所有行的尾随空格”不适用于块 cmets。至少对于 JS 编辑器下的相同设置。
    • 后面的空格确实保留在 javadoc cmets 中。
    【解决方案4】:

    请参阅https://bugs.eclipse.org/bugs/show_bug.cgi?id=360523 了解可能的解决方法。

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 2015-10-18
      • 2019-09-16
      • 2017-03-23
      • 2020-05-10
      • 1970-01-01
      • 2019-10-07
      • 2017-08-09
      • 2016-12-08
      相关资源
      最近更新 更多