diff --git a/src/plugins/texteditor/highlighter.cpp b/src/plugins/texteditor/highlighter.cpp index 5c88110b8a6..c88a5aacb59 100644 --- a/src/plugins/texteditor/highlighter.cpp +++ b/src/plugins/texteditor/highlighter.cpp @@ -121,6 +121,27 @@ Highlighter::Definition Highlighter::definitionForFileName(const QString &fileNa return highlightRepository()->definitionForFileName(fileName); } +Highlighter::Definitions Highlighter::definitionsForDocument(const TextDocument *document) +{ + const Utils::MimeType mimeType = Utils::mimeTypeForName(document->mimeType()); + Definitions definitions; + if (mimeType.isValid()) + definitions = Highlighter::definitionsForMimeType(mimeType.name()); + if (definitions.isEmpty()) + definitions = Highlighter::definitionsForFileName(document->filePath().fileName()); + return definitions; +} + +Highlighter::Definitions Highlighter::definitionsForMimeType(const QString &mimeType) +{ + return highlightRepository()->definitionsForMimeType(mimeType).toList(); +} + +Highlighter::Definitions Highlighter::definitionsForFileName(const QString &fileName) +{ + return highlightRepository()->definitionsForFileName(fileName).toList(); +} + void Highlighter::addCustomHighlighterPath(const Utils::FileName &path) { highlightRepository()->addCustomSearchPath(path.toString()); diff --git a/src/plugins/texteditor/highlighter.h b/src/plugins/texteditor/highlighter.h index 22fd23b26fe..cec2b0fb698 100644 --- a/src/plugins/texteditor/highlighter.h +++ b/src/plugins/texteditor/highlighter.h @@ -40,12 +40,17 @@ class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::Abstra { public: using Definition = KSyntaxHighlighting::Definition; + using Definitions = QList; Highlighter(); static Definition definitionForDocument(const TextDocument *document); static Definition definitionForMimeType(const QString &mimeType); static Definition definitionForFileName(const QString &fileName); + static Definitions definitionsForDocument(const TextDocument *document); + static Definitions definitionsForMimeType(const QString &mimeType); + static Definitions definitionsForFileName(const QString &fileName); + static void addCustomHighlighterPath(const Utils::FileName &path); static void updateDefinitions(std::function callback = nullptr);