forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.1'
Change-Id: Ia90424d479936a898705c433e5810c77ae088b2c
This commit is contained in:
@@ -243,11 +243,23 @@ ClangDiagnosticManager::ClangDiagnosticManager(TextEditor::TextDocument *textDoc
|
||||
{
|
||||
}
|
||||
|
||||
ClangDiagnosticManager::~ClangDiagnosticManager()
|
||||
{
|
||||
cleanMarks();
|
||||
}
|
||||
|
||||
void ClangDiagnosticManager::cleanMarks()
|
||||
{
|
||||
for (ClangTextMark *textMark : m_clangTextMarks) {
|
||||
m_textDocument->removeMark(textMark);
|
||||
delete textMark;
|
||||
}
|
||||
m_clangTextMarks.clear();
|
||||
}
|
||||
void ClangDiagnosticManager::generateTextMarks()
|
||||
{
|
||||
m_clangTextMarks.clear();
|
||||
cleanMarks();
|
||||
m_clangTextMarks.reserve(m_warningDiagnostics.size() + m_errorDiagnostics.size());
|
||||
|
||||
addClangTextMarks(m_warningDiagnostics);
|
||||
addClangTextMarks(m_errorDiagnostics);
|
||||
}
|
||||
@@ -332,18 +344,13 @@ ClangDiagnosticManager::diagnosticsWithFixIts() const
|
||||
void ClangDiagnosticManager::addClangTextMarks(
|
||||
const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics)
|
||||
{
|
||||
QTC_ASSERT(m_clangTextMarks.size() + diagnostics.size() <= m_clangTextMarks.capacity(), return);
|
||||
|
||||
for (auto &&diagnostic : diagnostics) {
|
||||
m_clangTextMarks.emplace_back(filePath(),
|
||||
diagnostic.location().line(),
|
||||
diagnostic.severity());
|
||||
|
||||
ClangTextMark &textMark = m_clangTextMarks.back();
|
||||
|
||||
textMark.setBaseTextDocument(m_textDocument);
|
||||
|
||||
m_textDocument->addMark(&textMark);
|
||||
for (const ClangBackEnd::DiagnosticContainer &diagnostic : diagnostics) {
|
||||
auto textMark = new ClangTextMark(filePath(),
|
||||
diagnostic.location().line(),
|
||||
diagnostic.severity());
|
||||
textMark->setToolTip(diagnostic.text());
|
||||
m_clangTextMarks.push_back(textMark);
|
||||
m_textDocument->addMark(textMark);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ class ClangDiagnosticManager
|
||||
{
|
||||
public:
|
||||
ClangDiagnosticManager(TextEditor::TextDocument *textDocument);
|
||||
~ClangDiagnosticManager();
|
||||
|
||||
void processNewDiagnostics(const QVector<ClangBackEnd::DiagnosticContainer> &allDiagnostics);
|
||||
|
||||
@@ -60,6 +61,7 @@ public:
|
||||
void clearDiagnosticsWithFixIts();
|
||||
|
||||
private:
|
||||
void cleanMarks();
|
||||
QString filePath() const;
|
||||
void filterDiagnostics(const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics);
|
||||
void generateEditorSelections();
|
||||
@@ -77,7 +79,7 @@ private:
|
||||
QVector<ClangBackEnd::DiagnosticContainer> m_fixItdiagnostics;
|
||||
QList<QTextEdit::ExtraSelection> m_extraSelections;
|
||||
TextEditor::RefactorMarkers m_fixItAvailableMarkers;
|
||||
std::vector<ClangTextMark> m_clangTextMarks;
|
||||
std::vector<ClangTextMark *> m_clangTextMarks;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -79,10 +79,5 @@ void ClangTextMark::setIcon(ClangBackEnd::DiagnosticSeverity severity)
|
||||
TextMark::setIcon(errorIcon);
|
||||
}
|
||||
|
||||
ClangTextMark::ClangTextMark(ClangTextMark &&other) Q_DECL_NOEXCEPT
|
||||
: TextMark(std::move(other))
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace ClangCodeModel
|
||||
|
||||
|
||||
@@ -36,11 +36,6 @@ class ClangTextMark : public TextEditor::TextMark
|
||||
public:
|
||||
ClangTextMark(const QString &fileName, int lineNumber, ClangBackEnd::DiagnosticSeverity severity);
|
||||
|
||||
ClangTextMark(ClangTextMark &&other) Q_DECL_NOEXCEPT;
|
||||
|
||||
ClangTextMark(ClangTextMark &other) = delete;
|
||||
ClangTextMark &operator=(ClangTextMark &other) = delete;
|
||||
|
||||
private:
|
||||
void setIcon(ClangBackEnd::DiagnosticSeverity severity);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user