Eclipse自动缩进错误缩进文件

时间:2012-08-05 16:23:01

标签: java eclipse indentation auto-indent

我的Eclipse中发生了一些奇怪的事情,我以前从未记得。基本上如果我有一个很长的语句并将其拆分为两行,那么之后的所有内容都会缩进一个标签,而不是它应该是。这是一个例子:

正确缩进:

public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape };

    private Tetrominoes pieceShape;
    private int coords[][];
    private int[][][] coordsTable;

    public Shape() {

        coords = new int[4][2];
        setShape(Tetrominoes.NoShape);
    }

    public void setShape(Tetrominoes shape) {

    }

}

使用Ctrl + A,Ctrl + I:

看起来如何
public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape };

        private Tetrominoes pieceShape;
        private int coords[][];
        private int[][][] coordsTable;

        public Shape() {

            coords = new int[4][2];
            setShape(Tetrominoes.NoShape);
        }

        public void setShape(Tetrominoes shape) {

        }

}

现在,如果我将该枚举保留在一行并自动缩进,那么它就可以了。我刚买了一台新的笔记本电脑并在其上放了一个新的Eclipse副本并且没有更改任何设置,所以这就是默认的自动缩进的工作原理。但我记得在我的旧笔记本电脑上,如果我将一条陈述分成两行,那么之后的所有其他内容仍然会正确对齐?

(同样在这篇文章的开头我放了“嘿伙计们”,但看起来StackOverflow会自动删除它吗?我尝试编辑问题并重新插入它但是一旦发布它仍然被删除。我试着把“嘿”,但那也被删除了。难道不相信问候吗?)

1 个答案:

答案 0 :(得分:2)

我能够重现这个问题。

似乎枚举的结尾括号让Eclipse感到困惑。如果你把它放在一个单独的行上,缩进就会开始正常工作:

public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape 
    };

    private Tetrominoes pieceShape;
    private int coords[][];
    private int[][][] coordsTable;

    public Shape() {

        coords = new int[4][2];
        setShape(Tetrominoes.NoShape);
    }

    public void setShape(Tetrominoes shape) {

    }

}

您还可以尝试格式化代码(Ctrl + Shift + F),然后更正缩进(Ctrl + A和Ctrl + I)。在格式化代码时,您会注意到Eclipse也将结束括号放在下一行而不是Enum常量主体旁边。