MCPcopy Create free account
hub / github.com/KDE/kdevelop / getProblem

Method getProblem

plugins/cppcheck/parser.cpp:248–293  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

246}
247
248KDevelop::IProblem::Ptr CppcheckParser::getProblem(int locationIdx) const
249{
250 KDevelop::IProblem::Ptr problem(new KDevelop::DetectedProblem(i18n("Cppcheck")));
251 QStringList messagePrefix;
252 QString errorMessage(m_errorMessage);
253
254 if (m_errorSeverity == QLatin1String("error")) {
255 problem->setSeverity(KDevelop::IProblem::Error);
256 }
257
258 else if (m_errorSeverity == QLatin1String("warning")) {
259 problem->setSeverity(KDevelop::IProblem::Warning);
260 }
261
262 else {
263 problem->setSeverity(KDevelop::IProblem::Hint);
264
265 messagePrefix.push_back(m_errorSeverity);
266 }
267
268 if (m_errorInconclusive) {
269 messagePrefix.push_back(QStringLiteral("inconclusive"));
270 }
271
272 if (!messagePrefix.isEmpty()) {
273 errorMessage = QStringLiteral("(%1) %2").arg(messagePrefix.join(QLatin1String(", ")), m_errorMessage);
274 }
275
276 problem->setDescription(errorMessage);
277 problem->setExplanation(m_errorVerboseMessage);
278
279 KDevelop::DocumentRange range;
280
281 if (locationIdx < 0 || locationIdx >= m_errorFiles.size()) {
282 range = KDevelop::DocumentRange::invalid();
283 } else {
284 range.document = KDevelop::IndexedString(m_errorFiles.at(locationIdx));
285 range.setBothLines(m_errorLines.at(locationIdx) - 1);
286 range.setBothColumns(0);
287 }
288
289 problem->setFinalLocation(range);
290 problem->setFinalLocationMode(KDevelop::IProblem::TrimmedLine);
291
292 return problem;
293}
294
295}

Callers

nothing calls this directly

Calls 12

joinMethod · 0.80
invalidFunction · 0.50
IndexedStringClass · 0.50
setSeverityMethod · 0.45
push_backMethod · 0.45
isEmptyMethod · 0.45
setDescriptionMethod · 0.45
setExplanationMethod · 0.45
sizeMethod · 0.45
atMethod · 0.45
setFinalLocationMethod · 0.45
setFinalLocationModeMethod · 0.45

Tested by

no test coverage detected