Home | History | Annotate | Download | only in checkstyle
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
      3 
      4 <!--
      5   See installation instructions: https://sites.google.com/a/chromium.org/dev/checkstyle
      6 -->
      7 <module name="Checker">
      8   <property name="severity" value="warning"/>
      9   <property name="charset" value="UTF-8"/>
     10   <module name="TreeWalker">
     11     <module name="AvoidStarImport">
     12       <property name="severity" value="error"/>
     13     </module>
     14     <module name="IllegalCatch">
     15       <property name="severity" value="warning"/>
     16     </module>
     17     <module name="RedundantImport">
     18       <message key="import.redundant" value="Redundant import: {0}. Use :JavaImportOrganize (ECLIM) or Ctrl+Shift+O (Eclipse) to sort imports"/>
     19       <property name="severity" value="error"/>
     20     </module>
     21     <module name="UnusedImports">
     22       <property name="severity" value="error"/>
     23       <property name="processJavadoc" value="true"/>
     24       <message key="import.unused" value="Unused import: {0}. Use :JavaImportOrganize (ECLIM) or Ctrl+Shift+O (Eclipse) to sort imports"/>
     25     </module>
     26     <module name="JavadocType">
     27       <property name="severity" value="error"/>
     28       <property name="tokens" value="INTERFACE_DEF, CLASS_DEF"/>
     29       <property name="scope" value="public"/>
     30       <message key="javadoc.missing" value="Public classes and interfaces require JavaDoc comments."/>
     31     </module>
     32     <module name="JavadocMethod">
     33       <property name="severity" value="warning"/>
     34       <property name="scope" value="public"/>
     35       <property name="allowMissingParamTags" value="true"/>
     36       <property name="allowMissingPropertyJavadoc" value="true"/>
     37       <property name="allowMissingReturnTag" value="true"/>
     38       <property name="allowMissingThrowsTags" value="true"/>
     39     </module>
     40     <module name="PackageName">
     41       <property name="severity" value="warning"/>
     42       <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
     43     </module>
     44     <module name="TypeName">
     45       <property name="severity" value="warning"/>
     46     </module>
     47     <module name="ConstantName">
     48       <property name="severity" value="warning"/>
     49       <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*)|(s[A-Z][a-zA-Z0-9]*)$"/>
     50       <message key="name.invalidPattern" value="Static final field names must either be all caps (e.g. int HEIGHT_PX) for 'true' constants, or start with s (e.g. AtomicInteger sNextId or Runnable sSuspendTask) for fields with mutable state or that don't 'feel' like constants."/>
     51     </module>
     52     <!-- Non-public, non-static field names start with m. -->
     53     <module name="MemberName">
     54         <property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/>
     55         <property name="applyToPublic" value="false"/>
     56         <message key="name.invalidPattern" value="Non-public, non-static field names start with m."/>
     57     </module>
     58     <!-- Static field names start with s. -->
     59     <module name="StaticVariableName">
     60         <property name="format" value="^s[A-Z][a-zA-Z0-9]*$"/>
     61         <property name="applyToPublic" value="false"/>
     62         <message key="name.invalidPattern" value="Static field names start with s."/>
     63     </module>
     64     <module name="MethodName" />
     65     <module name="ParameterName">
     66       <property name="severity" value="warning"/>
     67     </module>
     68     <module name="LocalFinalVariableName">
     69       <property name="severity" value="warning"/>
     70     </module>
     71     <module name="LocalVariableName">
     72       <property name="severity" value="warning"/>
     73     </module>
     74     <module name="LineLength">
     75       <property name="severity" value="error"/>
     76       <property name="ignorePattern" value="^import.*$" />
     77       <property name="max" value="100"/>
     78     </module>
     79     <module name="LeftCurly">
     80       <property name="severity" value="warning"/>
     81     </module>
     82     <module name="RightCurly">
     83       <property name="severity" value="warning"/>
     84     </module>
     85     <module name="NeedBraces">
     86       <property name="severity" value="warning"/>
     87       <property name="tokens" value="LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
     88     </module>
     89     <module name="EmptyBlock">
     90       <property name="severity" value="error"/>
     91       <property name="option" value="text"/>
     92       <metadata name="altname" value="EmptyCatchBlock"/>
     93     </module>
     94     <module name="UpperEll">
     95       <property name="severity" value="error"/>
     96     </module>
     97     <module name="FallThrough">
     98       <property name="severity" value="error"/>
     99       <property name="reliefPattern" value=".*"/>
    100     </module>
    101     <module name="ModifierOrder">
    102       <property name="severity" value="error"/>
    103     </module>
    104     <module name="WhitespaceAround">
    105       <property name="severity" value="error"/>
    106       <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN, TYPE_EXTENSION_AND" />
    107       <property name="allowEmptyConstructors" value="true"/>
    108       <property name="allowEmptyMethods" value="true"/>
    109    </module>
    110     <module name="WhitespaceAfter">
    111       <property name="tokens" value="COMMA, SEMI, TYPECAST"/>
    112     </module>
    113     <module name="NoWhitespaceAfter">
    114       <property name="severity" value="error"/>
    115       <property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>
    116     </module>
    117     <module name="NoWhitespaceBefore">
    118       <property name="severity" value="error"/>
    119       <property name="allowLineBreaks" value="true"/>
    120       <property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
    121     </module>
    122     <module name="NoFinalizer">
    123       <property name="severity" value="warning"/>
    124     </module>
    125     <module name="ParenPad">
    126       <property name="severity" value="warning"/>
    127     </module>
    128     <module name="ImportOrder">
    129       <property name="severity" value="error"/>
    130       <message key="import.ordering" value="Wrong order for {0} import. Use :JavaImportOrganize (ECLIM) or Ctrl+Shift+O (Eclipse) to sort imports"/>
    131       <property name="groups" value="android, com, dalvik, gov, junit, libcore, net, org, java, javax"/>
    132       <property name="ordered" value="true"/>
    133       <property name="option" value="top"/>
    134       <property name="separated" value="true"/>
    135     </module>
    136     <module name="Indentation">
    137       <property name="basicOffset" value="4"/>
    138     </module>
    139   </module>
    140   <module name="FileTabCharacter"/>
    141   <module name="RegexpSingleline">
    142     <property name="format" value="((//.*)|(\*.*))FIXME"/>
    143     <property name="message" value="TODO is preferred to FIXME.  e.g. &quot;TODO(johndoe):"/>
    144   </module>
    145   <module name="RegexpSingleline">
    146     <property name="format" value="((//.*)|(\*.*))(?&lt;!TODO\(.{0,100})(TODO[^(])|(TODO\([^)]*$)"/>
    147     <property name="message" value="All TODOs should be named.  e.g. &quot;TODO(johndoe):"/>
    148   </module>
    149   <module name="RegexpSingleline">
    150     <property name="severity" value="error"/>
    151     <property name="format" value="[ \t]+$"/>
    152     <property name="message" value="Trailing whitespace"/>
    153     </module>
    154   <module name="RegexpHeader">
    155     <property name="severity" value="error"/>
    156     <property name="header" value="^// Copyright 20\d\d The Chromium Authors. All rights reserved.$\n^// Use of this source code is governed by a BSD-style license that can be$\n^// found in the LICENSE file.$"/>
    157   </module>
    158 </module>
    159