Browse Source

Added fix its to diagnostics.

merge-requests/37/head
eidheim 10 years ago
parent
commit
37795c7515
  1. 10
      src/Diagnostic.cc
  2. 9
      src/Diagnostic.h

10
src/Diagnostic.cc

@ -14,6 +14,14 @@ clang::Diagnostic::Diagnostic(CXTranslationUnit& cx_tu, CXDiagnostic& cx_diagnos
clang::Tokens tokens(cx_tu, SourceRange(start_location, start_location));
if(tokens.size()==1)
offsets={start_offset, tokens.begin()->offsets.second};
unsigned num_fix_its=clang_getDiagnosticNumFixIts(cx_diagnostic);
for(unsigned c=0;c<num_fix_its;c++) {
CXSourceRange fix_it_range;
fix_its.emplace_back();
fix_its.back().string=clang::to_string(clang_getDiagnosticFixIt(cx_diagnostic, c, &fix_it_range));
fix_its.back().offsets=clang::SourceRange(fix_it_range).get_offsets();
}
}
const std::string clang::Diagnostic::get_severity_spelling(unsigned severity) {
@ -31,4 +39,4 @@ const std::string clang::Diagnostic::get_severity_spelling(unsigned severity) {
default:
return "";
}
}
}

9
src/Diagnostic.h

@ -10,6 +10,12 @@ namespace clang {
friend class TranslationUnit;
Diagnostic(CXTranslationUnit& cx_tu, CXDiagnostic& cx_diagnostic);
public:
class FixIt {
public:
std::string string;
std::pair<clang::Offset, clang::Offset> offsets;
};
static const std::string get_severity_spelling(unsigned severity);
unsigned severity;
@ -17,7 +23,8 @@ namespace clang {
std::string spelling;
std::string path;
std::pair<clang::Offset, clang::Offset> offsets;
std::vector<FixIt> fix_its;
};
}
#endif // DIAGNOSTIC_H_
#endif // DIAGNOSTIC_H_

Loading…
Cancel
Save