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+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 自动删除了它?我尝试编辑问题并重新插入它,但发布后它仍然被删除。我尝试输入“嘿”,但得到了也被删除了。难道不相信问候吗??)

4

1 回答 1

3

我能够重现该问题。

似乎枚举的结尾括号使 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 常量主体旁边。

于 2012-08-05T16:36:08.047 回答