diff --git a/src/lint/linter/ArcanistCppcheckLinter.php b/src/lint/linter/ArcanistCppcheckLinter.php --- a/src/lint/linter/ArcanistCppcheckLinter.php +++ b/src/lint/linter/ArcanistCppcheckLinter.php @@ -86,19 +86,8 @@ $message->setName($error->getAttribute('id')); $message->setDescription($error->getAttribute('msg')); - switch ($error->getAttribute('severity')) { - case 'error': - $message->setSeverity(ArcanistLintSeverity::SEVERITY_ERROR); - break; - - default: - if ($error->getAttribute('inconclusive')) { - $message->setSeverity(ArcanistLintSeverity::SEVERITY_ADVICE); - } else { - $message->setSeverity(ArcanistLintSeverity::SEVERITY_WARNING); - } - break; - } + $severity = $error->getAttribute('severity'); + $message->setSeverity($this->getLintMessageSeverity($severity)); $messages[] = $message; } @@ -107,4 +96,37 @@ return $messages; } + protected function getDefaultMessageSeverity($code) { + switch ($code) { + case 'error': + return ArcanistLintSeverity::SEVERITY_ERROR; + break; + case 'warning': + return ArcanistLintSeverity::SEVERITY_WARNING; + break; + case 'performance': + case 'style': + case 'portability': + case 'information': + case 'debug': + default: + return ArcanistLintSeverity::SEVERITY_ADVICE; + break; + } + } + + protected function getLintCodeFromLinterConfigurationKey($code) { + if (!preg_match('@^[a-z_]+$@', $code)) { + throw new Exception( + pht( + 'Unrecognized severity code "%s". Expected a valid cppcheck '. + 'severity code like "%s" or "%s".', + $code, + 'performance', + 'warning')); + } + + return $code; + } + }