From 2fa80bbd446c6f509b343267f03e994b41efdc74 Mon Sep 17 00:00:00 2001 From: David Cramer Date: Tue, 17 Jan 2012 16:30:59 -0800 Subject: [PATCH] Add canRun to linters. Summary: This allows engines to check the canRun method on linters, which should determine if a linter is configured and can be run in the current environment. Test Plan: Implement a linter with canRun as false, and ensure it doesnt run. Ensure all existing linters still run by default. Reviewers: epriestley Reviewed By: epriestley CC: aran Differential Revision: https://secure.phabricator.com/D1445 --- src/__phutil_library_map__.php | 4 ++-- src/lint/engine/base/ArcanistLintEngine.php | 3 +++ src/lint/linter/base/ArcanistLinter.php | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 9e24b9c5..2279b6cf 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -99,7 +99,7 @@ phutil_register_library_map(array( 'ArcanistXHPASTLinter' => 'lint/linter/xhpast', 'ArcanistXHPASTLinterTestCase' => 'lint/linter/xhpast/__tests__', 'BranchInfo' => 'branch', - 'ComprehensiveEngine' => 'lint/engine/comprehensive', + 'ComprehensiveLintEngine' => 'lint/engine/comprehensive', 'ExampleLintEngine' => 'lint/engine/example', 'PhutilLintEngine' => 'lint/engine/phutil', 'PhutilModuleRequirements' => 'parser/phutilmodule', @@ -166,7 +166,7 @@ phutil_register_library_map(array( 'ArcanistUserAbortException' => 'ArcanistUsageException', 'ArcanistXHPASTLinter' => 'ArcanistLinter', 'ArcanistXHPASTLinterTestCase' => 'ArcanistLinterTestCase', - 'ComprehensiveEngine' => 'ArcanistLintEngine', + 'ComprehensiveLintEngine' => 'ArcanistLintEngine', 'ExampleLintEngine' => 'ArcanistLintEngine', 'PhutilLintEngine' => 'ArcanistLintEngine', 'PhutilUnitTestEngine' => 'ArcanistBaseUnitTestEngine', diff --git a/src/lint/engine/base/ArcanistLintEngine.php b/src/lint/engine/base/ArcanistLintEngine.php index c8518b8f..72d441f6 100644 --- a/src/lint/engine/base/ArcanistLintEngine.php +++ b/src/lint/engine/base/ArcanistLintEngine.php @@ -183,6 +183,9 @@ abstract class ArcanistLintEngine { foreach ($linters as $linter) { $linter->setEngine($this); + if (!$linter->canRun()) { + continue; + } $paths = $linter->getPaths(); foreach ($paths as $key => $path) { diff --git a/src/lint/linter/base/ArcanistLinter.php b/src/lint/linter/base/ArcanistLinter.php index aa2cdb48..de9db19b 100644 --- a/src/lint/linter/base/ArcanistLinter.php +++ b/src/lint/linter/base/ArcanistLinter.php @@ -186,6 +186,10 @@ abstract class ArcanistLinter { $this->activePath = $path; } + public function canRun() { + return true; + } + abstract public function willLintPaths(array $paths); abstract public function lintPath($path); abstract public function getLinterName();