为什么try-with-resources会破坏Emacs中的缩进?"

Mis*_*ble 6 java emacs code-formatting indentation

Emacs 24 Java模式不会try-with-resource正确缩进新构造.

class X{
    void foo() {
        try {
            check(); // ((statement-block-intro 35))
        }
    }

    void bar() {
        try (Lock l = bar()) {
                check(); // ((substatement 140) (statement-block-intro 140))
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所示,这样的try块内的语句由额外的4个空格缩进,其值c-basic-indent包括右括号.

我确定的trytry-with-resource我之间的一个区别是块中第一个语句的语法信息,后者(substatement)在头部有一个额外的.这可能是它破裂的原因吗?

如果我从第一行手动删除4个空格,则其余行正确缩进,但闭括号除外,后者继续用额外的空格缩进.

这让我疯了.如果解决它,我的改变c-guess-basic-syntax是非常重要的,也许是使用建议的解决方法?

And*_*niy 1

这是众所周知的错误,emacslist.gnu.org 上有关于此问题的补丁,修复了此错误:https ://lists.gnu.org/archive/html/bug-gnu-emacs/2013-07 /msg00577.html

此外,根据此: http://osdir.com/ml/emacs-diffs-gnu/2013-07/msg00350.html看来,该错误已于 2013-07-27 修复。