TextEditor: add convenient definition for document function

Change-Id: I8bbaec71a4682e36d3919924932b410e2e9d74a9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2019-02-06 10:43:34 +01:00
parent 1dd462ac4d
commit f4a45884ca
3 changed files with 18 additions and 9 deletions

View File

@@ -32,6 +32,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h>
#include <utils/mimetypes/mimedatabase.h>
#include <Format>
#include <Repository>
@@ -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);

View File

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

View File

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