diff --git a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp index f5fe4d63681..c8da6e6c6a2 100644 --- a/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp +++ b/src/plugins/clangcodemodel/clangdiagnosticmanager.cpp @@ -376,9 +376,11 @@ void ClangDiagnosticManager::generateEditorSelections() } void ClangDiagnosticManager::processNewDiagnostics( - const QVector &allDiagnostics) + const QVector &allDiagnostics, + bool showTextMarkAnnotations) { m_diagnosticsInvalidated = false; + m_showTextMarkAnnotations = showTextMarkAnnotations; filterDiagnostics(allDiagnostics); generateTextMarks(); @@ -401,7 +403,8 @@ void ClangDiagnosticManager::addClangTextMarks( m_clangTextMarks.erase(it, m_clangTextMarks.end()); delete mark; }; - auto textMark = new ClangTextMark(filePath(), diagnostic, onMarkRemoved); + auto textMark = new ClangTextMark(filePath(), diagnostic, onMarkRemoved, + m_showTextMarkAnnotations); m_clangTextMarks.push_back(textMark); m_textDocument->addMark(textMark); } diff --git a/src/plugins/clangcodemodel/clangdiagnosticmanager.h b/src/plugins/clangcodemodel/clangdiagnosticmanager.h index e22cd933d53..16b1c16d2d9 100644 --- a/src/plugins/clangcodemodel/clangdiagnosticmanager.h +++ b/src/plugins/clangcodemodel/clangdiagnosticmanager.h @@ -49,7 +49,8 @@ public: ClangDiagnosticManager(TextEditor::TextDocument *textDocument); ~ClangDiagnosticManager(); - void processNewDiagnostics(const QVector &allDiagnostics); + void processNewDiagnostics(const QVector &allDiagnostics, + bool showTextMarkAnnotations); const QVector &diagnosticsWithFixIts() const; QList takeExtraSelections(); @@ -82,6 +83,7 @@ private: TextEditor::RefactorMarkers m_fixItAvailableMarkers; std::vector m_clangTextMarks; bool m_diagnosticsInvalidated = false; + bool m_showTextMarkAnnotations = false; }; } // namespace Internal diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index 848de72ebc0..6b0f995ecea 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -180,7 +180,7 @@ void ClangEditorDocumentProcessor::updateCodeWarnings( uint documentRevision) { if (documentRevision == revision()) { - m_diagnosticManager.processNewDiagnostics(diagnostics); + m_diagnosticManager.processNewDiagnostics(diagnostics, m_isProjectFile); const auto codeWarnings = m_diagnosticManager.takeExtraSelections(); const auto fixitAvailableMarkers = m_diagnosticManager.takeFixItAvailableMarkers(); const auto creator = creatorForHeaderErrorDiagnosticWidget(firstHeaderErrorDiagnostic); @@ -368,6 +368,8 @@ void ClangEditorDocumentProcessor::updateProjectPartAndTranslationUnitForEditor( registerTranslationUnitForEditor(projectPart.data()); m_projectPart = projectPart; + m_isProjectFile = m_parser->projectPartInfo().hints + & CppTools::ProjectPartInfo::IsFromProjectMatch; } } diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h index da6872fa3db..d7c27a79ff2 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h @@ -114,6 +114,7 @@ private: IpcCommunicator &m_ipcCommunicator; QSharedPointer m_parser; CppTools::ProjectPart::Ptr m_projectPart; + bool m_isProjectFile = false; QFutureWatcher m_parserWatcher; QTimer m_updateTranslationUnitTimer; unsigned m_parserRevision; diff --git a/src/plugins/clangcodemodel/clangtextmark.cpp b/src/plugins/clangcodemodel/clangtextmark.cpp index b8d69a722e8..a24e1fea1d6 100644 --- a/src/plugins/clangcodemodel/clangtextmark.cpp +++ b/src/plugins/clangcodemodel/clangtextmark.cpp @@ -64,7 +64,8 @@ Core::Id cartegoryForSeverity(ClangBackEnd::DiagnosticSeverity severity) ClangTextMark::ClangTextMark(const QString &fileName, const ClangBackEnd::DiagnosticContainer &diagnostic, - const RemovedFromEditorHandler &removedHandler) + const RemovedFromEditorHandler &removedHandler, + bool showLineAnnotations) : TextEditor::TextMark(fileName, int(diagnostic.location().line()), cartegoryForSeverity(diagnostic.severity())) @@ -79,7 +80,8 @@ ClangTextMark::ClangTextMark(const QString &fileName, setPriority(warning ? TextEditor::TextMark::NormalPriority : TextEditor::TextMark::HighPriority); updateIcon(); - setLineAnnotation(diagnostic.text().toString()); + if (showLineAnnotations) + setLineAnnotation(diagnostic.text().toString()); } void ClangTextMark::updateIcon(bool valid) diff --git a/src/plugins/clangcodemodel/clangtextmark.h b/src/plugins/clangcodemodel/clangtextmark.h index 0342fd1a62d..ae5478168a3 100644 --- a/src/plugins/clangcodemodel/clangtextmark.h +++ b/src/plugins/clangcodemodel/clangtextmark.h @@ -41,7 +41,8 @@ public: ClangTextMark(const QString &fileName, const ClangBackEnd::DiagnosticContainer &diagnostic, - const RemovedFromEditorHandler &removedHandler); + const RemovedFromEditorHandler &removedHandler, + bool showLineAnnotations); void updateIcon(bool valid = true); private: