如何在列上对齐字段(或局部变量声明),但在打开的列上用括号括起来?

如何在列上对齐字段(或局部变量声明),但在打开的列上用括号括起来?

在 Eclipse 中,当激活(“缩进”选项卡)中的选项“按列对齐字段”(我想要)时Window -> Preferences -> Java -> Formatter,Eclipse 还会决定将任何指定块(数组初始化器、匿名类、静态初始化器……)的右括号也对齐在等号的列上,如下所示:

int    myVar      = 0;
int[]  myArray    = {
    1, 2, 3, 4, 5, 6
                  };

而如果取消选中“按列对齐字段”选项,您将获得:

int myVar = 0;
int[] myArray = {
    1, 2, 3, 4, 5, 6
};

理想情况下,我想要以下混合(也许可以定义右括号的缩进):

int    myVar      = 0;
int[]  myArray    = {
    1, 2, 3, 4, 5, 6
};

我也尝试使用“Line Wrapping”选项卡中的选项,但它们似乎对此没有影响。(Eclipse 甚至欺骗了你,因为你可以在“Whitespace”选项卡的“Array Initializers”选项中找到一些看起来像我想要的东西,但可能是因为它认为它是一个局部变量。

此外,如果有人知道一种神奇的方法,可以让“在列上对齐字段”等同于局部变量,这可能会很有趣。

不幸的是,从 Eclipse 3.4 到 3.7,我还没有找到完美实现这一目标的方法,这使得我无法充分发挥自动格式化程序的潜力。

欢迎提供线索和建议,即使是以自定义插件、补丁或其他神秘解决方案的形式。

答案1

如果您想保留制表符缩进,您可以使用以下设置:

制表符策略:混合缩进大小:4 制表符大小:4 [X] 按列对齐字段

相关内容