[ 
https://issues.apache.org/jira/browse/CALCITE-487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14236708#comment-14236708
 ] 

Vladimir Sitnikov commented on CALCITE-487:
-------------------------------------------

Here's sample from IntelliJ formatting with checkstyle violations in comments. 
I've put artificial line breaks to explore the indentation.
{code:java}
  private static <K
      extends
          Comparable,
      V>
  Function1< // Checkstyle: Function1 have incorrect indentation level 2, 
expected level should be 6
      Grouping<
          K,
          V>,
      K>
  groupingKeyExtractor // Checkstyle: groupingKeyExtractor have incorrect 
indentation level 2, expected level should be 6
      ( // 'method def lparen' have incorrect indentation level 6, expected 
level should be 2
          int qbc
      ) { // 'method def rparen' have incorrect indentation level 6, expected 
level should be 2
    return new Function1<Grouping<K, V>, K>() {
      public K apply(Grouping<K, V> a0) {
        return a0.getKey();
      }
    };
  }
{code}

This "passes" checkstyle, however "lparen" is unsatisfiable:
{code:java}
  private static <K
      extends
          Comparable,
      V>
      Function1<
      Grouping<
          K,
          V>,
      K>
      groupingKeyExtractor
      ( // This lparen always triggers a violation no matter what indentation 
level you use. Hopefully, we do not code like that.
      int qbc
  ) {
    return new Function1<Grouping<K, V>, K>() {
      public K apply(Grouping<K, V> a0) {
        return a0.getKey();
      }
    };
  }
{code}

> Update checkstyle to 6.1.1
> --------------------------
>
>                 Key: CALCITE-487
>                 URL: https://issues.apache.org/jira/browse/CALCITE-487
>             Project: Calcite
>          Issue Type: Wish
>    Affects Versions: 1.0.0-incubating
>            Reporter: Vladimir Sitnikov
>            Assignee: Julian Hyde
>
> Checkstyle 6.1.1 offers more consistent handling of indentations.
> I do not like that current checkstyle 5.7 tries to make arrays 2-indented, 
> while IDEA makes them 4-aligned.
> I wish the style is as IDE-compatible as it could be (i.e. "reformat code" in 
> IDE should result in checkstyle-acceptable code).
> The update is as "easy" as putting the following into pom.xml:
> {code:xml}
>         <plugin>
>           <groupId>org.apache.maven.plugins</groupId>
>           <artifactId>maven-checkstyle-plugin</artifactId>
>           <version>2.12.1</version>
>           <dependencies>
>             <dependency>
>               <groupId>com.puppycrawl.tools</groupId>
>               <artifactId>checkstyle</artifactId>
>               <version>6.1.1</version>
>             </dependency>
>           </dependencies>
>         </plugin>{code}
> Checkstyle 6.1.1 complains a lot on array initializers.
> I did not manage to get "non indented" names of methods like 
> {{groupingKeyExtractor}} in 
> {code:java}
>   private static <K extends Comparable, V> Function1<Grouping<K, V>, K>
>   groupingKeyExtractor() { // IDEA adds no indentation here, however 
> checkstyle wants "6" here
>     return new Function1<Grouping<K, V>, K>() {
>       public K apply(Grouping<K, V> a0) {
>         return a0.getKey();
>       }
>     };
>   }{code}
> With the following additions, the number of warnings is much less, however I 
> wish the final style is IDE-compatible.
> {code:xml}
>     <module name="Indentation">
>       <property name="caseIndent" value="0"/>
>       <property name="basicOffset" value="2"/>
>       <property name="braceAdjustment" value="0"/>
>       <property name="arrayInitIndent" value="2"/> <-- added -->
>       <property name="throwsIndent" value="4"/> <-- added -->
>       <property name="lineWrappingIndentation" value="4"/> <-- added -->
>     </module>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to