TextEditor: return all definitions for a file name/mimetype/document

Change-Id: Ifd4ee9ab71b95a66cf11e30e2de688d421094a4a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2019-02-06 10:52:32 +01:00
parent c02ceb180e
commit 67b0d9be2e
2 changed files with 26 additions and 0 deletions

View File

@@ -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());

View File

@@ -40,12 +40,17 @@ class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::Abstra
{
public:
using Definition = KSyntaxHighlighting::Definition;
using Definitions = QList<Definition>;
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<void()> callback = nullptr);