TextEditor: extract initilizing the generic highlighter

Change-Id: Ibdd37aeb761087118dd4974a06d82c0dbe1f1731
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2019-02-07 08:36:57 +01:00
parent 67b0d9be2e
commit 874dde6863

View File

@@ -612,6 +612,7 @@ public:
void reconfigure(); void reconfigure();
void updateSyntaxInfoBar(bool showInfo); void updateSyntaxInfoBar(bool showInfo);
void configureGenericHighlighter(const KSyntaxHighlighting::Definition &definition);
public: public:
TextEditorWidget *q; TextEditorWidget *q;
@@ -3297,6 +3298,25 @@ void TextEditorWidgetPrivate::updateSyntaxInfoBar(bool showInfo)
} }
} }
void TextEditorWidgetPrivate::configureGenericHighlighter(
const KSyntaxHighlighting::Definition &definition)
{
auto highlighter = new Highlighter();
m_document->setSyntaxHighlighter(highlighter);
if (definition.isValid()) {
highlighter->setDefinition(definition);
m_commentDefinition.singleLine = definition.singleLineCommentMarker();
m_commentDefinition.multiLineStart = definition.multiLineCommentMarker().first;
m_commentDefinition.multiLineEnd = definition.multiLineCommentMarker().second;
q->setCodeFoldingSupported(true);
} else {
q->setCodeFoldingSupported(false);
}
m_document->setFontSettings(TextEditorSettings::fontSettings());
}
bool TextEditorWidget::codeFoldingVisible() const bool TextEditorWidget::codeFoldingVisible() const
{ {
return d->m_codeFoldingVisible; return d->m_codeFoldingVisible;
@@ -8494,27 +8514,11 @@ QString TextEditorWidget::textAt(int from, int to) const
void TextEditorWidget::configureGenericHighlighter() void TextEditorWidget::configureGenericHighlighter()
{ {
auto highlighter = new Highlighter();
textDocument()->setSyntaxHighlighter(highlighter);
setCodeFoldingSupported(false);
const Highlighter::Definition definition = Highlighter::definitionForDocument(textDocument()); const Highlighter::Definition definition = Highlighter::definitionForDocument(textDocument());
d->configureGenericHighlighter(definition);
if (definition.isValid()) {
highlighter->setDefinition(definition);
d->m_commentDefinition.singleLine = definition.singleLineCommentMarker();
d->m_commentDefinition.multiLineStart = definition.multiLineCommentMarker().first;
d->m_commentDefinition.multiLineEnd = definition.multiLineCommentMarker().second;
setCodeFoldingSupported(true);
}
d->updateSyntaxInfoBar(!definition.isValid() d->updateSyntaxInfoBar(!definition.isValid()
&& !TextEditorSettings::highlighterSettings().isIgnoredFilePattern( && !TextEditorSettings::highlighterSettings().isIgnoredFilePattern(
textDocument()->filePath().fileName())); textDocument()->filePath().fileName()));
textDocument()->setFontSettings(TextEditorSettings::fontSettings());
} }
int TextEditorWidget::blockNumberForVisibleRow(int row) const int TextEditorWidget::blockNumberForVisibleRow(int row) const