diff --git a/src/plugins/texteditor/highlighter.cpp b/src/plugins/texteditor/highlighter.cpp index 170ec12bc8b..2471fd17a14 100644 --- a/src/plugins/texteditor/highlighter.cpp +++ b/src/plugins/texteditor/highlighter.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -99,6 +100,17 @@ Highlighter::Highlighter() &categoryForTextStyle); } +KSyntaxHighlighting::Definition Highlighter::definitionForDocument(const TextDocument *document) +{ + const Utils::MimeType mimeType = Utils::mimeTypeForName(document->mimeType()); + KSyntaxHighlighting::Definition definition; + if (mimeType.isValid()) + definition = Highlighter::definitionForMimeType(mimeType.name()); + if (!definition.isValid()) + definition = Highlighter::definitionForFileName(document->filePath().fileName()); + return definition; +} + KSyntaxHighlighting::Definition Highlighter::definitionForMimeType(const QString &mimeType) { return highlightRepository()->definitionForMimeType(mimeType); diff --git a/src/plugins/texteditor/highlighter.h b/src/plugins/texteditor/highlighter.h index 90ab31332ac..f29da279e31 100644 --- a/src/plugins/texteditor/highlighter.h +++ b/src/plugins/texteditor/highlighter.h @@ -34,12 +34,14 @@ namespace TextEditor { class FontSettings; +class TextDocument; class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::AbstractHighlighter { public: Highlighter(); + static KSyntaxHighlighting::Definition definitionForDocument(const TextDocument *document); static KSyntaxHighlighting::Definition definitionForMimeType(const QString &mimeType); static KSyntaxHighlighting::Definition definitionForFileName(const QString &fileName); diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 7a301e38998..8e5aaacbad3 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -8499,14 +8499,8 @@ void TextEditorWidget::configureGenericHighlighter() setCodeFoldingSupported(false); - const QString type = textDocument()->mimeType(); - const MimeType mimeType = Utils::mimeTypeForName(type); - const QString fileName = textDocument()->filePath().fileName(); - KSyntaxHighlighting::Definition definition; - if (mimeType.isValid()) - definition = Highlighter::definitionForMimeType(mimeType.name()); - if (!definition.isValid()) - definition = Highlighter::definitionForFileName(fileName); + const KSyntaxHighlighting::Definition definition = + Highlighter::definitionForDocument(textDocument()); if (definition.isValid()) { highlighter->setDefinition(definition); @@ -8518,7 +8512,8 @@ void TextEditorWidget::configureGenericHighlighter() } d->updateSyntaxInfoBar(!definition.isValid() - && !TextEditorSettings::highlighterSettings().isIgnoredFilePattern(fileName)); + && !TextEditorSettings::highlighterSettings().isIgnoredFilePattern( + textDocument()->filePath().fileName())); textDocument()->setFontSettings(TextEditorSettings::fontSettings()); }