Checkstyle右大括号位置 - 单独设置'给出消息'必须在同一行'

时间:2015-04-14 00:42:26

标签: java checkstyle

我尝试使用谷歌搜索,但一直无法找到解决方案。我正在为Java Luna运行Eclipse。使用Sun Eclipse样式,我将左侧卷曲支撑位置修改为“nl”,并将“右侧卷曲支撑位置”修改为“单独使用”。这一切都很好,除非正确的大括号后面跟着“其他”,或者“抓住”#39; (也许其他人如“终于' ......我还没有检查过”)。在这种情况下,我有一个看起来像

的代码部分
    ... 
}
catch ( whatever )
{
    ...
}

在捕获之前的大括号会出现错误,指出'}'应该在同一行。如果我将右大括号移动到前一行的末尾,我得到:

Multiple markers at this line
'}' should have line break before.
'}' should be on the same line.
'}' should be on a new line.
'if rcurly' have incorrect indentation level XXX, expected level

如果我移动' catch'和'}'在同一行,我得到:

'}' should be alone on a line.

我是CheckStyle的新手,我认为我已经错误地设置了其他一些必需的选项。我找到的文件没有给我任何指示如何解决这个问题。我搜索了StackOverflow上的checkstyle标签,但没有发现类似的问题。任何帮助或指向我可以获得帮助的地方都将不胜感激。

配置文件显示为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!--

    This configuration file was written by the eclipse-cs plugin configuration editor

-->
<!--

    Checkstyle-Configuration: Sun Eclipse With Personal Checks

    Description: 

Based on the Sun Eclipse but with values that I prefer

-->
<module name="Checker">
  <property name="severity" value="warning"/>
  <module name="TreeWalker">
    <module name="LeftCurly">
      <property name="option" value="nl"/>
    </module>
    <module name="RightCurly"/>
    <module name="Indentation"/>
    <module name="RightCurly">
      <property name="option" value="alone"/>
    </module>
  </module>
</module>

1 个答案:

答案 0 :(得分:0)

重新检查您是否使用最新的checkstyle并尝试在CLI上重现该基础 - http://checkstyle.sourceforge.net/cmdline.html

$ cat checkstyle_checks.xml 
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">

  <module name="TreeWalker">

    <module name="LeftCurly">
      <property name="option" value="nl"/>
      <property name="tokens" value="LITERAL_CATCH"/>
      <property name="tokens" value="LITERAL_ELSE"/>
      <property name="tokens" value="LITERAL_FINALLY"/>
      <property name="tokens" value="LITERAL_IF"/>
      <property name="tokens" value="LITERAL_TRY"/>
    </module>

    <module name="RightCurly">
      <property name="option" value="alone"/>
    </module>

    </module>
</module>

    $ cat PropertyCacheFile.java 
final class PropertyCacheFile
{
    PropertyCacheFile()
    {
        if (true) 
        {
            //code
        }
        else 
        {
            //code
        }
            try 
            {
             // NCODE
            }
            catch (final IOException e) 
            {
                // SMTH
            }
            finally 
            {
                /// VALUES
            }
    }
}

$ java -jar checkstyle-6.5-all.jar -c checkstyle_checks.xml PropertyCacheFile.java 
Starting audit...
Audit done.