【问题标题】:How to configure Eclipse formatter to not insert blank line between field declarations?如何配置 Eclipse 格式化程序在字段声明之间不插入空行?
【发布时间】:2010-01-20 14:21:07
【问题描述】:

我使用的是 Eclipse 3.5.1 (Galileo),但其中一项自动格式化设置有​​问题。

在我自动格式化的那一刻,在每个字段声明之间插入了一个空行。我正在寻找的行为是组织字段声明,中间没有空行。除了声明之间已经有一个或多个空行的情况外,在这种情况下,我希望格式化程序尊重空格,并将 >=1 行减少到 1 行。

我知道这在 Eclipse 的某个时候是可能的(不记得版本,但我为此使用了一个设置),但我似乎无法在 Window->Preferences->Java->Code Style->Formatter 中找到正确的设置。

我应该配置哪个设置来启用此行为?


编辑:我所描述的行为似乎是默认行为,出于某种原因,如果不删除 .settings 目录,我找不到返回该行为的方法。它也无法复制,这表明项目设置有些奇怪(它是从开源项目中签出的)。虽然我找到了解决此问题的老办法,但我仍在寻找建议,并且能够验证并接受答案。

【问题讨论】:

    标签: eclipse configuration formatting


    【解决方案1】:

    我使用的 Eclipse 是:

    Eclipse Java EE IDE for Web Developers.
    Version: Indigo Service Release 2
    Build id: 20120216-1857
    

    如上图所示,空白行选项卡下有一个“导入组之间”,它对我有用。你可以去看看。

    【讨论】:

    • 请指定设置上述对话框的路径
    • 要设置上面的对话框,你去 Window->Preferences->Java->Code Style->Formatter->Edit...->Blank Lines
    • 任何人都可以在首选项窗口中找到任何东西是一个奇迹
    【解决方案2】:

    奇怪,我无法使用自己的格式化程序配置文件 (eclipse3.5.1) 重现该行为。

    早在 2003 年 (bug 38523) 就有一个设置为“如果行太长,则在每个参数后插入新行”,但这已在很久以前集成到“换行”面板中。

    您确定没有添加换行符是因为换行问题(由于最大行长度太短)?

    “空白行”选项卡确实有一个“现有空白行”部分,其中“要保留的空行数”字段可以设置为 1,并且应该满足您的要求。
    在同一选项卡“空白行”中,还要检查“字段声明之前”的值:“1”可以解释您看到的空白行


    (来源:comscigate.com


    格式化程序选项在org.eclipse.jdt.ui.prefs文件中,即:

    • 在您的工作区中 (.metadata.plugins\org.eclipse.core.runtime.settings)
    • 或在您项目的.settings 中。

    您可以尝试清空该文件以检查问题是否仍然存在。解决问题后,尝试在该文件中添加一些行,直到问题再次出现。

    ....................... 2020 年 1 月 17 日 只需在第一个字段声明后删除空白行。 ....................

    【讨论】:

    • 感谢您的回答。我很确定这不是换行 - 我不得不错误地将其更改为非常小的东西,因为int a; int b; 在它们之间换了一条新线。奇怪的是,在我的空白行选项卡版本中,示例实际上是我想要的,没有额外的行,但格式仍然插入了额外的行。我有其他具有相同 Eclipse 的工作区,因此我将检查它们的设置以查看有什么不同。干杯。
    • 澄清一下,当我说“int a; int b; 在它们之间换行”时,我的意思是 a 和 b 已经在不同的行上,并且插入了一个额外的空白行。
    • @Grundlefeck:明白。那么这就很玄妙了。可能是与已安装插件的交互?您是否在 Eclipse 的全新安装中观察到同样的事情(您的设置已导出/重新导入)?无论如何,如果你找到答案,我很感兴趣;)
    【解决方案3】:

    我发现我的问题的解决方案很差。

    我去项目中删除了.settings目录并重新启动了Eclipse。在此过程中,我当然丢失了所有其他格式规则,这就是它糟糕的原因。但是空行不再添加,我描述的行为是默认行为(可能是我习惯的原因)。

    我仍然希望为此接受更好的解决方案,我保留了旧设置以验证任何建议。


    编辑:我想我找到了问题。

    出于某种原因,可能与正在检查的项目设置有关,我通过首选项选择的任何设置实际上都没有得到尊重。因此,尽管Von C 建议的首选项是正确的,但更改为它们没有效果。我在尝试更改自动生成的 cmets 时遇到了同样的问题,但没有将两个和两个放在一起(实际上提醒我的是,终于看到在我似乎无法删除的评论中生成了“ARGH”:- p)。

    所以在这种情况下,问题实际上不是设置,而是 Eclipse 中的其他问题,我什至不想调查。

    【讨论】:

    • +1。您能否逐节复制您的格式设置文件(在每次添加之间重新启动)以查看其中一个格式设置部分是否对这个“空白行”问题有任何影响?
    • 查看我的编辑,我认为这实际上不会帮助解决根本问题。谢谢 VonC。
    • 我刚刚在我的答案中添加了带有格式选项的确切设置文件。我要记住的更多,因为您在编辑中说您无法轻松重现该问题,但仍值得尝试清空/填充该设置文件以防万一。
    • 带回空白行的实际设置是Before Field Declarations: 1,如您的答案所示。但是diffing 这两个不同的 prefs 文件,看起来 3.5.1 处理这些值的方式与最初用于检入它们的 Eclipse 版本不同。我认为这是不同的 Eclipse 通常不能很好地处理设置的情况,而不是特定的设置。正如你所说,“在字段声明之前”是一个。
    猜你喜欢
    • 2017-10-03
    • 2011-06-02
    • 2012-11-07
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2020-05-10
    相关资源
    最近更新 更多