| 246 | } |
| 247 | |
| 248 | KDevelop::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 | } |
nothing calls this directly
no test coverage detected