From 52277fc06f8db2fe73c88b76022d91baee1129f3 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Tue, 3 Feb 2015 06:43:54 +1100 Subject: [PATCH] Modernize `ArcanistPhpcsLinter` Summary: Allow `--severity` to be specified using `.arclint`. Test Plan: `arc unit` Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D11511 --- src/lint/linter/ArcanistPhpcsLinter.php | 38 +++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) 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');