【问题标题】:Can Eclipse's Java formatter indent wrapped lines differently than new blocks?Eclipse 的 Java 格式化程序能否以不同于新块的方式缩进包装行?
【发布时间】:2011-12-31 04:24:25
【问题描述】:

我喜欢这样格式化我的代码:

void someFunction() {
   normalLine();
   reallyLongLineThatNeedsToBeWrapped(
    OnlyIndentOneSpaceHere = true);
   normalLine();
}

但从我对 Eclipse 源格式的试验来看,您似乎无法独立于新块缩进指定换行缩进。

有没有办法在 Eclipse 中实现这一点?

根据答案,我提交了Eclipse enhancement request

【问题讨论】:

    标签: java eclipse formatting


    【解决方案1】:

    我不这么认为。问题是您不能根据上下文将缩进大小更改为不同。因此,为缩进大小选择 1 会导致所有内容都缩进一个空格。您可以根据是否为函数调用制定单独的包装策略,但如果是函数调用,则缩进的“单位”不能改变。

    【讨论】:

    • 即使我无法自定义缩进,我认为应该更改默认行为: 目前自动缩进 this: private static final String X = "foo";改为: private static final String X = "foo";我认为这只是错误。所有续行都应该缩进。
    • 您可以针对 Eclipse JDT 提交错误报告以引起他们的注意。
    • 事实证明,虽然这是默认行为,但有一种方法可以让它做一些合理的事情。
      Preferences->Java->Code Style->Formatter->Edit
      转到Line Wrapping 选项卡(或最后一些其他Java 源上下文)。然后选择“作业”(在“表达式”下),然后(在面板底部)选择适合您口味的设置。那里提供的东西似乎已经足够了。
    【解决方案2】:

    是和不是。

    可以以不同的方式缩进换行,但有一个限制:换行的缩进必须是块缩进的倍数。

    您特别要求将块缩进设置为 3 并将换行缩进设置为 1。这种特定设置目前不可能

    那么,如果您想使用例如Google Java Style 怎么办?它们的块缩进为 2,换行(续行)缩进为 4。这是可实现的,因为 4 是 2 的倍数。

    首先,打开格式化程序设置:

    Window > Preferences > Java > Code Style > Formatter > Edit

    在 Indentation 选项卡中,将 Indentation size 设置为 2。这是块缩进。

    然后打开Line Wrapping 标签。你有 默认缩进用于换行默认缩进用于数组初始值设定项。将这些字段设置为 2,这意味着换行缩进将是块缩进的两倍。

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2020-01-18
      • 2012-09-17
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多