Eclipse Formatter没有正确缩进

时间:2019-09-17 12:34:46

标签: eclipse eclipse-formatter

我们在Java Conventions [built-in]项目中使用Eclipse格式化程序。格式化后,代码按预期显示,并在Eclipse中查看时正确缩进。

我们注意到,如果我们在Notepad++(或其他应用程序)中打开文件,则缩进实际上是不正确的。例如。方法主体具有与方法相同的缩进。 另外,如果代码是从Eclipse复制而来,则缩进不正确。

示例1

Eclipse

class Example {

    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

Notepad++

class Example {

public static void main(String args[]) {
    System.out.println("Hello World!");
}
}

示例2

Eclipse

public static void main(String args[]) {
    System.out.println("Hello World!");
}

Notepad++

public static void main(String args[]) {
System.out.println("Hello World!");
}

这是预期的行为吗?

空格/制表符的屏幕截图

enter image description here

所有字符

enter image description here

2 个答案:

答案 0 :(得分:1)

Java Conventions [Built-in]配置文件使用8个空格作为制表符。

Notepad使用8个空格,但是Notepad++(以及我使用过的大多数其他IDE,例如IntelliJ)使用4个空格。

要解决此问题,请复制配置文件并将制表符间距更改为4

或者将Tab Policy更改为Spaces Only。我更喜欢这样做,因为我不认为应该使用制表符来分隔空格。这个问题是为什么不应该使用制表符的一个例子。

答案 1 :(得分:1)

默认的Eclipse格式化程序配置文件 Eclipse [内置] 显示标签,其宽度为 4个空格

相反, Java约定[内置] 显示标签,其宽度为 8个空格

这是Code Conventions for the Java Programming Language4 - Indentation给出的(由我突出显示):

  

应使用四个空格作为缩进单位。最正确   缩进的构造(空格与制表符)未指定。 标签   必须完全每 8个空格(而不是4个)设置。

如今,很少使用带有混合制表符策略且制表符宽度为8个空格的原始Java代码约定。您可以考虑切换到 Eclipse [内置] 格式化程序配置文件。