phpjenkinscontinuous-integrationpearphpcodesniffer

How to Ignore Line Length PHP_CodeSniffer


I have been using PHP_CodeSniffer with jenkins, my build.xml was configured for phpcs as below

<target name="phpcs">
    <exec executable="phpcs">
        <arg line="--report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}"/>
    </exec>
</target> 

And I would like to ignore the following warning

FOUND 0 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
 117 | WARNING | Line exceeds 80 characters; contains 85 characters
--------------------------------------------------------------------------------

How could I ignore the line length warning?


Solution

  • You could create your own standard. The Zend one is quite simple (this is at /usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml in my Debian install after installing it with PEAR). Create another one based on it, but ignore the line-length bit:

    <?xml version="1.0"?>
    <ruleset name="Custom">
     <description>Zend, but without linelength check.</description>
     <rule ref="Zend">
      <exclude name="Generic.Files.LineLength"/>
     </rule>
    </ruleset>
    

    And set --standard=/path/to/your/ruleset.xml.

    Optionally, if you just want to up the char count before this is triggered, redefine the rule:

     <!-- Lines can be N chars long (warnings), errors at M chars -->
     <rule ref="Generic.Files.LineLength">
      <properties>
       <property name="lineLimit" value="N"/>
       <property name="absoluteLineLimit" value="M"/>
      </properties>
     </rule>