Skip to content

Commit 13568d7

Browse files
committed
fix severity colorization
esp. information as red was disturbing
1 parent 8ec2a65 commit 13568d7

4 files changed

Lines changed: 32 additions & 4 deletions

File tree

cli/cmdlineparser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1394,7 +1394,7 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
13941394

13951395
// Default template format..
13961396
if (mSettings.templateFormat.empty()) {
1397-
mSettings.templateFormat = "{bold}{file}:{line}:{column}: {red}{inconclusive:{magenta}}{severity}:{inconclusive: inconclusive:}{default} {message} [{id}]{reset}\\n{code}";
1397+
mSettings.templateFormat = "{bold}{file}:{line}:{column}: {severity}:{inconclusive: inconclusive:}{default} {message} [{id}]{reset}\\n{code}";
13981398
if (mSettings.templateLocation.empty())
13991399
mSettings.templateLocation = "{bold}{file}:{line}:{column}: {dim}note:{reset} {info}\\n{code}";
14001400
}

lib/errorlogger.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ ErrorMessage::ErrorMessage(const tinyxml2::XMLElement * const errmsg)
171171
id = attr ? attr : unknown;
172172

173173
attr = errmsg->Attribute("severity");
174-
severity = attr ? severityFromString(attr) : Severity::none;
175-
174+
severity = attr ? severityFromString(attr) : Severity::none;
175+
176176
attr = errmsg->Attribute("cwe");
177177
// cppcheck-suppress templateInstantiation - TODO: fix this - see #11631
178178
cwe.id = attr ? strToInt<unsigned short>(attr) : 0;
@@ -637,7 +637,9 @@ std::string ErrorMessage::toString(bool verbose, const std::string &templateForm
637637
findAndReplace(result, replaceFrom, replaceWith);
638638
pos1 = result.find("{inconclusive:", pos1);
639639
}
640-
findAndReplace(result, "{severity}", severityToString(severity));
640+
std::string sseverity = coloredSeverityToString(severity);
641+
replaceColors(sseverity);
642+
findAndReplace(result, "{severity}", sseverity);
641643
findAndReplace(result, "{cwe}", std::to_string(cwe.id));
642644
findAndReplace(result, "{message}", verbose ? mVerboseMessage : mShortMessage);
643645
findAndReplace(result, "{remark}", remark);

lib/errortypes.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,31 @@ std::string severityToString(Severity severity)
7272
throw InternalError(nullptr, "Unknown severity");
7373
}
7474

75+
std::string coloredSeverityToString(Severity severity)
76+
{
77+
switch (severity) {
78+
case Severity::none:
79+
return "";
80+
case Severity::error:
81+
return "{red}error";
82+
case Severity::warning:
83+
return "{magenta}warning";
84+
case Severity::style:
85+
return "{bold}style";
86+
case Severity::performance:
87+
return "{bold}performance";
88+
case Severity::portability:
89+
return "{bold}portability";
90+
case Severity::information:
91+
return "{green}information";
92+
case Severity::debug:
93+
return "debug";
94+
case Severity::internal:
95+
return "internal";
96+
}
97+
throw InternalError(nullptr, "Unknown severity");
98+
}
99+
75100
// TODO: bail out on invalid severity
76101
Severity severityFromString(const std::string& severity)
77102
{

lib/errortypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ enum class Severity : std::uint8_t {
120120
};
121121

122122
CPPCHECKLIB std::string severityToString(Severity severity);
123+
CPPCHECKLIB std::string coloredSeverityToString(Severity severity);
123124
CPPCHECKLIB Severity severityFromString(const std::string &severity);
124125

125126
struct CWE {

0 commit comments

Comments
 (0)