diff --git a/.arcconfig b/.arcconfig --- a/.arcconfig +++ b/.arcconfig @@ -1,7 +1,6 @@ { "project.name" : "arcanist", "phabricator.uri" : "https://secure.phabricator.com/", - "lint.engine" : "PhutilLintEngine", "unit.engine" : "PhutilUnitTestEngine", "load" : [ "src/" diff --git a/.arclint b/.arclint new file mode 100644 --- /dev/null +++ b/.arclint @@ -0,0 +1,41 @@ +{ + "exclude": [ + "(^externals/)", + "(\\.lint-test$)" + ], + "linters": { + "filename": { + "type": "filename" + }, + "generated": { + "type": "generated" + }, + "merge-conflict": { + "type": "merge-conflict" + }, + "nolint": { + "type": "nolint" + }, + "phutil-xhpast": { + "type": "phutil-xhpast", + "include": "(\\.php$)" + }, + "text": { + "type": "text" + }, + "spelling": { + "type": "spelling" + }, + "xhpast": { + "type": "xhpast", + "include": "(\\.php$)", + "severity": { + "16": "advice", + "29": "warning", + "31": "error", + "34": "error", + "35": "error" + } + } + } +} diff --git a/src/lint/linter/ArcanistPhutilXHPASTLinter.php b/src/lint/linter/ArcanistPhutilXHPASTLinter.php --- a/src/lint/linter/ArcanistPhutilXHPASTLinter.php +++ b/src/lint/linter/ArcanistPhutilXHPASTLinter.php @@ -1,8 +1,5 @@ xhpastLinter) { - throw new Exception( - 'Call setXHPASTLinter() before using ArcanistPhutilXHPASTLinter.'); + $this->xhpastLinter = new ArcanistXHPASTLinter(); } $this->xhpastLinter->setEngine($engine); return parent::setEngine($engine); @@ -64,6 +60,10 @@ return 'PHLXHP'; } + public function getLinterConfigurationName() { + return 'phutil-xhpast'; + } + public function getCacheVersion() { $version = '2'; $path = xhpast_get_binary_path(); diff --git a/src/lint/linter/ArcanistXHPASTLinter.php b/src/lint/linter/ArcanistXHPASTLinter.php --- a/src/lint/linter/ArcanistXHPASTLinter.php +++ b/src/lint/linter/ArcanistXHPASTLinter.php @@ -2,8 +2,6 @@ /** * Uses XHPAST to apply lint rules to PHP. - * - * @group linter */ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter { @@ -96,6 +94,10 @@ return 'XHP'; } + public function getLinterConfigurationName() { + return 'xhpast'; + } + public function getLintSeverityMap() { $disabled = ArcanistLintSeverity::SEVERITY_DISABLED; $advice = ArcanistLintSeverity::SEVERITY_ADVICE;