Changeset View
Changeset View
Standalone View
Standalone View
src/lint/linter/ArcanistRuboCopLinter.php
| Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | final class ArcanistRuboCopLinter extends ArcanistExternalLinter { | ||||
| protected function parseLinterOutput($path, $err, $stdout, $stderr) { | protected function parseLinterOutput($path, $err, $stdout, $stderr) { | ||||
| $results = phutil_json_decode($stdout); | $results = phutil_json_decode($stdout); | ||||
| $messages = array(); | $messages = array(); | ||||
| foreach ($results['files'] as $file) { | foreach ($results['files'] as $file) { | ||||
| foreach ($file['offenses'] as $offense) { | foreach ($file['offenses'] as $offense) { | ||||
| $message = id(new ArcanistLintMessage()) | $message = id(new ArcanistLintMessage()) | ||||
| ->setPath($file['path']) | ->setPath($file['path']) | ||||
| ->setDescription($offense['message']) | |||||
| ->setLine($offense['location']['line']) | ->setLine($offense['location']['line']) | ||||
| ->setChar($offense['location']['column']) | ->setChar($offense['location']['column']) | ||||
| ->setSeverity($this->getLintMessageSeverity($offense['severity'])) | ->setCode($offense['cop_name']) | ||||
| ->setName($this->getLinterName()) | ->setDescription($offense['message']); | ||||
| ->setCode($offense['cop_name']); | |||||
| $messages[] = $message; | |||||
| } | |||||
| } | |||||
| return $messages; | |||||
| } | |||||
| /** | |||||
| * Take the string from RuboCop's severity terminology and return an | |||||
| * @{class:ArcanistLintSeverity}. | |||||
| */ | |||||
| protected function getDefaultMessageSeverity($code) { | |||||
| switch ($code) { | switch ($code) { | ||||
| case 'convention': | case 'convention': | ||||
| case 'refactor': | case 'refactor': | ||||
| case 'warning': | case 'warning': | ||||
| return ArcanistLintSeverity::SEVERITY_WARNING; | $message->setSeverity(ArcanistLintSeverity::SEVERITY_WARNING); | ||||
| break; | |||||
| case 'error': | case 'error': | ||||
| case 'fatal': | case 'fatal': | ||||
| return ArcanistLintSeverity::SEVERITY_ERROR; | $message->setSeverity(ArcanistLintSeverity::SEVERITY_ERROR); | ||||
| break; | |||||
| default: | default: | ||||
| return ArcanistLintSeverity::SEVERITY_ADVICE; | $message->setSeverity(ArcanistLintSeverity::SEVERITY_ADVICE); | ||||
| break; | |||||
| } | } | ||||
| $messages[] = $message; | |||||
| } | |||||
| } | |||||
| return $messages; | |||||
| } | } | ||||
| } | } | ||||