diff --git a/src/lint/linter/ArcanistPhpcsLinter.php b/src/lint/linter/ArcanistPhpcsLinter.php index 4568269f..8475c55a 100644 --- a/src/lint/linter/ArcanistPhpcsLinter.php +++ b/src/lint/linter/ArcanistPhpcsLinter.php @@ -5,7 +5,7 @@ */ final class ArcanistPhpcsLinter extends ArcanistExternalLinter { - private $reports; + private $standard; public function getInfoName() { return 'PHP_CodeSniffer'; @@ -29,14 +29,42 @@ final class ArcanistPhpcsLinter extends ArcanistExternalLinter { return 'phpcs'; } - protected function getMandatoryFlags() { - return array('--report=xml'); - } - public function getInstallInstructions() { return pht('Install PHPCS with `pear install PHP_CodeSniffer`.'); } + public function getLinterConfigurationOptions() { + $options = array( + 'phpcs.standard' => array( + 'type' => 'optional string', + 'help' => pht('The name or path of the coding standard to use.'), + ), + ); + + return $options + parent::getLinterConfigurationOptions(); + } + + public function setLinterConfigurationValue($key, $value) { + switch ($key) { + case 'phpcs.standard': + $this->standard = $value; + return; + + default: + return parent::setLinterConfigurationValue($key, $value); + } + } + + protected function getMandatoryFlags() { + $options = array('--report=xml'); + + if ($this->standard) { + $options[] = '--standard='.$this->standard; + } + + return $options; + } + protected function getDefaultFlags() { $options = $this->getDeprecatedConfiguration('lint.phpcs.options', array()); $standard = $this->getDeprecatedConfiguration('lint.phpcs.standard');