在Intellij IDEA中禁用Lambda表达式/匿名类的缩进

时间:2015-02-22 19:36:24

标签: intellij-idea intellij-14

以下图片几乎说明了整个问题: When pressing ENTER IntelliJ IDEA indents the closing brace relative to the lambda expression, while it should go relative to the parent expression's braces.

我尝试使用// formatter:off进行适当的设置,但无济于事。我也试过寻找lambda表达式/匿名类的缩进规则,但我找不到它们。

非常感谢任何建议!

5 个答案:

答案 0 :(得分:4)

您需要关闭匿名类的右括号旁边的最右边的括号,以获得所需的缩进。

而不是:

itemClose.addActionListener(new ActionListener() {
                              @Override
                              public void actionPerformed(ActionEvent e) {

                              }
                            }
);

删除最后一个}和)之间的行/空格;你得到:

itemClose.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {

  }
}); 

答案 1 :(得分:0)

IntelliJ Idea 14.1.1

选择复选框

“文件”[菜单] /“设置”/“代码样式”/“在评论中启用格式化程序标记”

(请参阅“格式化关闭”字段和字段值,对我来说是“@formatter:off”)

然后在代码中使用// @formatter:off

示例:

// @formatter:off
Observable.create(new Observable.OnSubscribe<Path>() {
    @Override
    public void call(Subscriber<? super Path> subscriber) {
        try (DirectoryStream<Path> stream  = Files.newDirectoryStream(rootDir, filePattern)) {
            for (Path path : stream) subscriber.onNext(path);
        } catch (IOException e) {
            System.err.println(e.getMessage());
            subscriber.onError(e);
        }
        subscriber.onCompleted();
    }
});

答案 2 :(得分:0)

我的诀窍是禁用EditorConfig支持:

文件/设置/编辑器/代码样式:取消选中启用EditorConfig支持。

答案 3 :(得分:0)

对我有帮助的是设定 Editor > Code Style > Java > Continuation indent为较低的值。

答案 4 :(得分:0)

取消选中“使用相对于表达式开头的缩进”选项 Editor > Code Style > Java

Use indents relative to expression start