From 4451da70376aa4321b94f6db2362ca79e8168ac0 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 24 Aug 2023 09:29:16 +0200 Subject: [PATCH] LanguageClient: use json editor in language client settings Change-Id: Ib2b8dae730a701d71ae39a4eaf401f5feab7f921 Reviewed-by: Christian Stenger --- .../languageclient/languageclientsettings.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index a623fd1a9b7..f322709eba8 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -1030,9 +1030,16 @@ TextEditor::BaseTextEditor *jsonEditor() { using namespace TextEditor; using namespace Utils::Text; - BaseTextEditor *editor = PlainTextEditorFactory::createPlainTextEditor(); - TextDocument *document = editor->textDocument(); - TextEditorWidget *widget = editor->editorWidget(); + BaseTextEditor *textEditor = nullptr; + for (Core::IEditorFactory *factory : Core::IEditorFactory::preferredEditorFactories("foo.json")) { + Core::IEditor *editor = factory->createEditor(); + if (textEditor = qobject_cast(editor); textEditor) + break; + delete editor; + } + QTC_ASSERT(textEditor, textEditor = PlainTextEditorFactory::createPlainTextEditor()); + TextDocument *document = textEditor->textDocument(); + TextEditorWidget *widget = textEditor->editorWidget(); widget->configureGenericHighlighter(Utils::mimeTypeForName("application/json")); widget->setLineNumbersVisible(false); widget->setMarksVisible(false); @@ -1063,7 +1070,7 @@ TextEditor::BaseTextEditor *jsonEditor() mark->setIcon(Utils::Icons::CODEMODEL_ERROR.icon()); document->addMark(mark); }); - return editor; + return textEditor; } } // namespace LanguageClient