diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -44,6 +44,7 @@ 'ArcanistCommitLinterTestCase' => 'lint/linter/__tests__/ArcanistCommitLinterTestCase.php', 'ArcanistCommitWorkflow' => 'workflow/ArcanistCommitWorkflow.php', 'ArcanistCompilerLikeLintRenderer' => 'lint/renderer/ArcanistCompilerLikeLintRenderer.php', + 'ArcanistComprehensiveLintEngine' => 'lint/engine/ArcanistComprehensiveLintEngine.php', 'ArcanistConduitLinter' => 'lint/linter/ArcanistConduitLinter.php', 'ArcanistConfiguration' => 'configuration/ArcanistConfiguration.php', 'ArcanistConfigurationDrivenLintEngine' => 'lint/engine/ArcanistConfigurationDrivenLintEngine.php', @@ -251,6 +252,7 @@ 'ArcanistCommitLinterTestCase' => 'ArcanistLinterTestCase', 'ArcanistCommitWorkflow' => 'ArcanistWorkflow', 'ArcanistCompilerLikeLintRenderer' => 'ArcanistLintRenderer', + 'ArcanistComprehensiveLintEngine' => 'ArcanistLintEngine', 'ArcanistConduitLinter' => 'ArcanistLinter', 'ArcanistConfigurationDrivenLintEngine' => 'ArcanistLintEngine', 'ArcanistConsoleLintRenderer' => 'ArcanistLintRenderer', @@ -382,7 +384,7 @@ 'ArcanistXMLLinter' => 'ArcanistLinter', 'ArcanistXMLLinterTestCase' => 'ArcanistLinterTestCase', 'CSharpToolsTestEngine' => 'XUnitTestEngine', - 'ComprehensiveLintEngine' => 'ArcanistLintEngine', + 'ComprehensiveLintEngine' => 'ArcanistComprehensiveLintEngine', 'NoseTestEngine' => 'ArcanistUnitTestEngine', 'PhpunitTestEngine' => 'ArcanistUnitTestEngine', 'PhpunitTestEngineTestCase' => 'ArcanistTestCase', diff --git a/src/lint/engine/ComprehensiveLintEngine.php b/src/lint/engine/ArcanistComprehensiveLintEngine.php copy from src/lint/engine/ComprehensiveLintEngine.php copy to src/lint/engine/ArcanistComprehensiveLintEngine.php --- a/src/lint/engine/ComprehensiveLintEngine.php +++ b/src/lint/engine/ArcanistComprehensiveLintEngine.php @@ -2,8 +2,10 @@ /** * Basic lint engine which just applies several linters based on the file types. + * + * @todo Should be final but isn't because of @{class:ComprehensiveLintEngine}. */ -final class ComprehensiveLintEngine extends ArcanistLintEngine { +class ArcanistComprehensiveLintEngine extends ArcanistLintEngine { public function buildLinters() { $linters = array(); diff --git a/src/lint/engine/ComprehensiveLintEngine.php b/src/lint/engine/ComprehensiveLintEngine.php --- a/src/lint/engine/ComprehensiveLintEngine.php +++ b/src/lint/engine/ComprehensiveLintEngine.php @@ -1,55 +1,15 @@ <?php /** - * Basic lint engine which just applies several linters based on the file types. + * @deprecated */ -final class ComprehensiveLintEngine extends ArcanistLintEngine { +final class ComprehensiveLintEngine extends ArcanistComprehensiveLintEngine { public function buildLinters() { - $linters = array(); - - $paths = $this->getPaths(); - - foreach ($paths as $key => $path) { - if (preg_match('@^externals/@', $path)) { - // Third-party stuff lives in /externals/; don't run lint engines - // against it. - unset($paths[$key]); - } - } - - $text_paths = preg_grep('/\.(php|css|hpp|cpp|l|y|py|pl)$/', $paths); - $linters[] = id(new ArcanistGeneratedLinter())->setPaths($text_paths); - $linters[] = id(new ArcanistNoLintLinter())->setPaths($text_paths); - $linters[] = id(new ArcanistTextLinter())->setPaths($text_paths); - - $linters[] = id(new ArcanistFilenameLinter())->setPaths($paths); - - $linters[] = id(new ArcanistXHPASTLinter()) - ->setPaths(preg_grep('/\.php$/', $paths)); - - $py_paths = preg_grep('/\.py$/', $paths); - $linters[] = id(new ArcanistPyFlakesLinter())->setPaths($py_paths); - $linters[] = id(new ArcanistPEP8Linter()) - ->setFlags($this->getPEP8WithTextOptions()) - ->setPaths($py_paths); - - $linters[] = id(new ArcanistRubyLinter()) - ->setPaths(preg_grep('/\.rb$/', $paths)); - - $linters[] = id(new ArcanistJSHintLinter()) - ->setPaths(preg_grep('/\.js$/', $paths)); - - return $linters; - } - - protected function getPEP8WithTextOptions() { - // E101 is subset of TXT2 (Tab Literal). - // E501 is same as TXT3 (Line Too Long). - // W291 is same as TXT6 (Trailing Whitespace). - // W292 is same as TXT4 (File Does Not End in Newline). - // W293 is same as TXT6 (Trailing Whitespace). - return array('--ignore=E101,E501,W291,W292,W293'); + phutil_deprecated( + __CLASS__, + 'You should use `ArcanistComprehensiveLintEngine` instead.'); + parent::buildLinters(); } }