forked from qt-creator/qt-creator
TextEditor: add convenient definition for document function
Change-Id: I8bbaec71a4682e36d3919924932b410e2e9d74a9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/messagemanager.h>
|
#include <coreplugin/messagemanager.h>
|
||||||
|
#include <utils/mimetypes/mimedatabase.h>
|
||||||
|
|
||||||
#include <Format>
|
#include <Format>
|
||||||
#include <Repository>
|
#include <Repository>
|
||||||
@@ -99,6 +100,17 @@ Highlighter::Highlighter()
|
|||||||
&categoryForTextStyle);
|
&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)
|
KSyntaxHighlighting::Definition Highlighter::definitionForMimeType(const QString &mimeType)
|
||||||
{
|
{
|
||||||
return highlightRepository()->definitionForMimeType(mimeType);
|
return highlightRepository()->definitionForMimeType(mimeType);
|
||||||
|
@@ -34,12 +34,14 @@
|
|||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
class FontSettings;
|
class FontSettings;
|
||||||
|
class TextDocument;
|
||||||
|
|
||||||
class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::AbstractHighlighter
|
class Highlighter : public SyntaxHighlighter, public KSyntaxHighlighting::AbstractHighlighter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Highlighter();
|
Highlighter();
|
||||||
|
|
||||||
|
static KSyntaxHighlighting::Definition definitionForDocument(const TextDocument *document);
|
||||||
static KSyntaxHighlighting::Definition definitionForMimeType(const QString &mimeType);
|
static KSyntaxHighlighting::Definition definitionForMimeType(const QString &mimeType);
|
||||||
static KSyntaxHighlighting::Definition definitionForFileName(const QString &fileName);
|
static KSyntaxHighlighting::Definition definitionForFileName(const QString &fileName);
|
||||||
|
|
||||||
|
@@ -8499,14 +8499,8 @@ void TextEditorWidget::configureGenericHighlighter()
|
|||||||
|
|
||||||
setCodeFoldingSupported(false);
|
setCodeFoldingSupported(false);
|
||||||
|
|
||||||
const QString type = textDocument()->mimeType();
|
const KSyntaxHighlighting::Definition definition =
|
||||||
const MimeType mimeType = Utils::mimeTypeForName(type);
|
Highlighter::definitionForDocument(textDocument());
|
||||||
const QString fileName = textDocument()->filePath().fileName();
|
|
||||||
KSyntaxHighlighting::Definition definition;
|
|
||||||
if (mimeType.isValid())
|
|
||||||
definition = Highlighter::definitionForMimeType(mimeType.name());
|
|
||||||
if (!definition.isValid())
|
|
||||||
definition = Highlighter::definitionForFileName(fileName);
|
|
||||||
|
|
||||||
if (definition.isValid()) {
|
if (definition.isValid()) {
|
||||||
highlighter->setDefinition(definition);
|
highlighter->setDefinition(definition);
|
||||||
@@ -8518,7 +8512,8 @@ void TextEditorWidget::configureGenericHighlighter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
d->updateSyntaxInfoBar(!definition.isValid()
|
d->updateSyntaxInfoBar(!definition.isValid()
|
||||||
&& !TextEditorSettings::highlighterSettings().isIgnoredFilePattern(fileName));
|
&& !TextEditorSettings::highlighterSettings().isIgnoredFilePattern(
|
||||||
|
textDocument()->filePath().fileName()));
|
||||||
|
|
||||||
textDocument()->setFontSettings(TextEditorSettings::fontSettings());
|
textDocument()->setFontSettings(TextEditorSettings::fontSettings());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user