如何让IntelliJ IDEA在"="符号上对齐相邻的变量赋值?

And*_*rew 41 intellij-idea

环境是IntelliJ IDEA 12.

我已经Wrapping and Braces > Assignment Statement > Align when multiline打勾了.当我有相邻的属性时,它们是正确对齐的:

private final CustomerFactory  customerFactory  = FactoryBuilder.getDefaultCustomerFactory ( );
private final RepFactory       repFactory       = FactoryBuilder.getDefaultRepFactory ( );
private final WarehouseFactory warehouseFactory = FactoryBuilder.getDefaultWarehouseFactory ( );
Run Code Online (Sandbox Code Playgroud)

但是当我有相邻的变量赋值时,它们不是:

final Integer account30 = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_1 ) );
final Integer account60 = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_2 ) );
final Integer account90 = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_3 ) );
final Integer account120 = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_4 ) );
final Integer priceNumber = parseInteger ( fields.get ( FIELD_PRICE_NUMBER ), 1 );
Run Code Online (Sandbox Code Playgroud)

这是次要的,但它让我很烦.任何人都可以告诉我,我可以做些什么来使这些相邻的变量声明对齐?我想要的是:

final Integer account30   = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_1 ) );
final Integer account60   = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_2 ) );
final Integer account90   = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_3 ) );
final Integer account120  = parseCurrency ( fields.get ( FIELD_OVERDUE_BALANCE_4 ) );
final Integer priceNumber = parseInteger ( fields.get ( FIELD_PRICE_NUMBER ), 1 );
Run Code Online (Sandbox Code Playgroud)

谢谢!

mab*_*aba 34

我认为你应该使用Field groups => Align in columns

当多线具有一些不适用于此处的其他效果时对齐.

在此输入图像描述

  • 那已经开启了.它影响类级别字段(属性),而不影响方法级别变量. (3认同)
  • 在Android Studio 1.2.2中,在Java下 - > Wrapping and Braces:我看到"Group Declarations"而不是"Field Groups",其中包括"Alumns fields in columns"和"Align variables in columns"的单独复选框.很可能IntelliJ 13/14也是如此. (2认同)

Rap*_*lee 31

在"代码样式" - >"包装和大括号"选项卡中的"Java"下面找到并输入"在列中对齐变量".完成!

设置以对齐变量声明


eco*_*coe 24

您也可以使用键绑定执行此操作,而不对Intellij选项进行任何更改:

使用键绑定进行对齐的示例

怎么做:

从一些典型的未对齐文本开始,使用您选择的分隔符:

someVar = someVal
someOtherVar = someVal
someOtherOtherVar = someVal
Run Code Online (Sandbox Code Playgroud)

使用以下(或等效)Default for Gnome键绑定:

  1. 突出显示第一个等号
  2. Alt+j两次,每次一次=,到Add Selection for Next Occurrence
  3. 在所有=现在被选中的情况下,点击Left并输入一堆空格,直到空白的垂直间隙至少有2个空格宽
  4. Alt+Shift+Insert进入multi-cursor selection mode并在间隙中绘制一条直线(光标两侧至少有一个空格)
  5. Ctrl+Shift+Right 选择从光标到每个空格的所有空白区域 =
  6. 点击Backspace这将导致所有不均匀的空白被截断,让每个空格=直接与光标对齐

你现在应该有类似的东西:

someVar           = someVal
someOtherVar      = someVal
someOtherOtherVar = someVal
Run Code Online (Sandbox Code Playgroud)

这种方法的好处是它的一般用途; 它适用于您想要的任何对齐方案,无论是等号,逗号,冒号还是简单的空格

如前所述,此示例是使用Default for Gnome键绑定执行的.您可以在"设置">"键盘映射"中自由选择其他方案

  • 天哪,这太棒了!我认为必须是选定的答案 <3 (2认同)