summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolseditorsupport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cpptoolseditorsupport.cpp')
-rw-r--r--src/plugins/cpptools/cpptoolseditorsupport.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.cpp b/src/plugins/cpptools/cpptoolseditorsupport.cpp
index 4bec4d9058..e99338bc4a 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.cpp
+++ b/src/plugins/cpptools/cpptoolseditorsupport.cpp
@@ -192,6 +192,13 @@ void CppEditorSupport::setExtraDiagnostics(const QString &key,
emit diagnosticsChanged();
}
+void CppEditorSupport::setIfdefedOutBlocks(const QList<BlockRange> &ifdefedOutBlocks)
+{
+ m_editorUpdates.ifdefedOutBlocks = ifdefedOutBlocks;
+
+ emit diagnosticsChanged();
+}
+
bool CppEditorSupport::initialized()
{
return m_initialized;
@@ -262,11 +269,13 @@ void CppEditorSupport::onDocumentUpdated(Document::Ptr doc)
return; // outdated content, wait for a new document to be parsed
// Update the ifdeffed-out blocks:
- QList<Document::Block> skippedBlocks = doc->skippedBlocks();
- m_editorUpdates.ifdefedOutBlocks.clear();
- m_editorUpdates.ifdefedOutBlocks.reserve(skippedBlocks.size());
- foreach (const Document::Block &block, skippedBlocks) {
- m_editorUpdates.ifdefedOutBlocks.append(BlockRange(block.begin(), block.end()));
+ if (m_highlightingSupport && !m_highlightingSupport->hightlighterHandlesIfdefedOutBlocks()) {
+ QList<Document::Block> skippedBlocks = doc->skippedBlocks();
+ QList<BlockRange> ifdefedOutBlocks;
+ ifdefedOutBlocks.reserve(skippedBlocks.size());
+ foreach (const Document::Block &block, skippedBlocks)
+ ifdefedOutBlocks.append(BlockRange(block.begin(), block.end()));
+ setIfdefedOutBlocks(ifdefedOutBlocks);
}
if (m_highlightingSupport && !m_highlightingSupport->hightlighterHandlesDiagnostics()) {