我的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会自动删除它吗?我尝试编辑问题并重新插入它但是一旦发布它仍然被删除。我试着把“嘿”,但那也被删除了。难道不相信问候吗?)
答案 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常量主体旁边。