void ClangEditorDocumentProcessor::onParserFinished() { if (revision() != m_parserRevision) return; // Emit ifdefed out blocks const auto ifdefoutBlocks = toTextEditorBlocks(m_parser->ifdefedOutBlocks()); emit ifdefedOutBlocksUpdated(revision(), ifdefoutBlocks); // Run semantic highlighter m_semanticHighlighter.run(); updateProjectPartAndTranslationUnitForEditor(); }
void ClangEditorDocumentProcessor::updateHighlighting( const QVector<ClangBackEnd::HighlightingMarkContainer> &highlightingMarks, const QVector<ClangBackEnd::SourceRangeContainer> &skippedPreprocessorRanges, uint documentRevision) { if (documentRevision == revision()) { const auto skippedPreprocessorBlocks = toTextEditorBlocks(textDocument(), skippedPreprocessorRanges); emit ifdefedOutBlocksUpdated(documentRevision, skippedPreprocessorBlocks); m_semanticHighlighter.setHighlightingRunner( [highlightingMarks]() { auto *reporter = new HighlightingMarksReporter(highlightingMarks); return reporter->start(); }); m_semanticHighlighter.run(); } }