diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index cb421f2bf7c..2636ad46e23 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -914,19 +914,23 @@ bool TextDocument::reload(QString *errorString, ReloadFlag flag, ChangeType type void TextDocument::resetSyntaxHighlighter(const std::function &creator, bool threaded) { - if (d->m_highlighterRunner) - delete d->m_highlighterRunner; + delete d->m_highlighterRunner; - static const bool envValue - = qtcEnvironmentVariable("QTC_USE_THREADED_HIGHLIGHTER", "TRUE").toUpper() - == QLatin1String("TRUE"); + static const std::optional envValue = []() -> std::optional { + const QString key("QTC_USE_THREADED_HIGHLIGHTER"); + if (qtcEnvironmentVariableIsSet(key)) { + const QString value = qtcEnvironmentVariable(key).toUpper(); + return value != "FALSE" && value != "0"; + } + return {}; + }(); SyntaxHighlighter *highlighter = creator(); highlighter->setFontSettings(TextEditorSettings::fontSettings()); highlighter->setMimeType(mimeType()); d->m_highlighterRunner = new SyntaxHighlighterRunner(highlighter, document(), - threaded && envValue); + envValue.value_or(threaded)); } void TextDocument::cleanWhitespace(const QTextCursor &cursor) diff --git a/src/plugins/texteditor/textdocument.h b/src/plugins/texteditor/textdocument.h index ad3fe262e24..5879d9e9ec2 100644 --- a/src/plugins/texteditor/textdocument.h +++ b/src/plugins/texteditor/textdocument.h @@ -127,7 +127,7 @@ public: QTextDocument *document() const; using SyntaxHighLighterCreator = std::function; - void resetSyntaxHighlighter(const SyntaxHighLighterCreator &creator, bool threaded = true); + void resetSyntaxHighlighter(const SyntaxHighLighterCreator &creator, bool threaded = false); SyntaxHighlighterRunner *syntaxHighlighterRunner() const; bool reload(QString *errorString, QTextCodec *codec);