From bd6cc6b9464f7d50631491c43ade83df9059afea Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Tue, 24 Dec 2013 00:44:47 +1100 Subject: [PATCH] Update CSSLint bindings for v0.10.0 Summary: See It looks like the behaviour of csslint has changed since the ArcanistCSSLintLinter was written. Consequently, ArcanistCSSLintLinter does not work with the latest version of csslint (v0.10.0). - `csslint` has a non-zero exit status - Fixed `csslint` parsing for v0.10.0 Reviewed by: epriestley --- src/lint/linter/ArcanistCSSLintLinter.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lint/linter/ArcanistCSSLintLinter.php b/src/lint/linter/ArcanistCSSLintLinter.php index 4c9620c2..8d36041f 100644 --- a/src/lint/linter/ArcanistCSSLintLinter.php +++ b/src/lint/linter/ArcanistCSSLintLinter.php @@ -51,6 +51,10 @@ final class ArcanistCSSLintLinter extends ArcanistExternalLinter { return pht('Install CSSLint using `npm install -g csslint`.'); } + public function shouldExpectCommandErrors() { + return true; + } + protected function parseLinterOutput($path, $err, $stdout, $stderr) { $report_dom = new DOMDocument(); $ok = @$report_dom->loadXML($stdout); @@ -82,7 +86,7 @@ final class ArcanistCSSLintLinter extends ArcanistExternalLinter { $message->setDescription($child->getAttribute('reason')); $message->setSeverity($severity); - if ($child->hasAttribute('line')) { + if ($child->hasAttribute('line') && $child->getAttribute('line') > 0) { $line = $lines[$child->getAttribute('line') - 1]; $text = substr($line, $child->getAttribute('char') - 1); $message->setOriginalText($text);