ParenPad

Since Checkstyle 3.0

Description

Checks the policy on the padding of parentheses; that is whether a space is required after a left parenthesis and before a right parenthesis, or such spaces are forbidden. No check occurs at the right parenthesis after an empty for iterator, at the left parenthesis before an empty for initialization, or at the right parenthesis of a try-with-resources resource specification where the last resource variable has a trailing semicolon. Use Check EmptyForIteratorPad to validate empty for iterators and EmptyForInitializerPad to validate empty for initializers. Typecasts are also not checked, as there is TypecastParenPad to validate them.

Properties

Examples

To configure the check:

<module name="Checker">
  <module name="TreeWalker">
    <module name="ParenPad"/>
  </module>
</module>
        

Example:

class Example1 {
  int n;

  public void fun() {
    bar( 1);  // violation 'is followed by whitespace'
  }

  public void bar(int k ) {  // violation 'is preceded with whitespace'
    while (k > 0) {
    }

    StringBuilder obj = new StringBuilder(k);
  }

  public void fun2() {
    switch( n) {  // violation 'is followed by whitespace'
      case 2:
        bar(n);
      default:
        break;
    }
  }
}
        

To configure the check to require spaces for the parentheses of constructor, method, and super constructor calls:

<module name="Checker">
  <module name="TreeWalker">
    <module name="ParenPad">
      <property name="tokens"
                value="LITERAL_FOR, LITERAL_CATCH, SUPER_CTOR_CALL"/>
      <property name="option" value="space"/>
    </module>
  </module>
</module>
        

Example:

class Example2 {
  int x;

  public Example2(int n) {
  }

  public void fun() {
    try {
      throw new IOException();
    } catch( IOException e) { // violation 'not preceded with whitespace'
    } catch( Exception e ) {
    }

    for ( int i = 0; i < x; i++ ) {
    }
  }

  class Bar extends Example2 {
    public Bar() {
      super(1 ); // violation 'not followed by whitespace'
    }

    public Bar(int k) {
      super( k );

      for ( int i = 0; i < k; i++) { // violation 'not preceded with whitespace'
      }
    }
  }
}
        

The following cases are not checked:

for ( ; i < j; i++, j--) // no check after left parenthesis
for (Iterator it = xs.iterator(); it.hasNext(); ) // no check before right parenthesis
try (Closeable resource = acquire(); ) // no check before right parenthesis
        

Example of Usage

Violation Messages

All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.

Package

com.puppycrawl.tools.checkstyle.checks.whitespace

Parent Module

TreeWalker