LanguageClient: correctly initialize editors of opened documents

Change-Id: I2dee2093c0bdb97a204e89bf0db526ae405b8e78
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2022-09-23 11:50:46 +02:00
parent b88ba1b7a6
commit 54feec93e3
3 changed files with 21 additions and 17 deletions

View File

@@ -845,7 +845,12 @@ void Client::activateDocument(TextEditor::TextDocument *document)
document->setQuickFixAssistProvider(d->m_clientProviders.quickFixAssistProvider);
}
document->setFormatter(new LanguageClientFormatter(document, this));
for (Core::IEditor *editor : Core::DocumentModel::editorsForDocument(document)) {
for (Core::IEditor *editor : Core::DocumentModel::editorsForDocument(document))
activateEditor(editor);
}
void Client::activateEditor(Core::IEditor *editor)
{
updateEditorToolBar(editor);
if (editor == Core::EditorManager::currentEditor())
TextEditor::IOutlineWidgetFactory::updateOutline();
@@ -854,13 +859,12 @@ void Client::activateDocument(TextEditor::TextDocument *document)
widget->addHoverHandler(&d->m_hoverHandler);
d->requestDocumentHighlights(widget);
uint optionalActions = widget->optionalActions();
if (symbolSupport().supportsFindUsages(document))
if (symbolSupport().supportsFindUsages(widget->textDocument()))
optionalActions |= TextEditor::TextEditorActionHandler::FindUsage;
if (symbolSupport().supportsRename(document))
if (symbolSupport().supportsRename(widget->textDocument()))
optionalActions |= TextEditor::TextEditorActionHandler::RenameSymbol;
widget->setOptionalActions(optionalActions);
}
}
}
void Client::deactivateDocument(TextEditor::TextDocument *document)

View File

@@ -111,6 +111,7 @@ public:
virtual void openDocument(TextEditor::TextDocument *document);
void closeDocument(TextEditor::TextDocument *document);
void activateDocument(TextEditor::TextDocument *document);
void activateEditor(Core::IEditor *editor);
void deactivateDocument(TextEditor::TextDocument *document);
bool documentOpen(const TextEditor::TextDocument *document) const;
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;

View File

@@ -471,10 +471,9 @@ void LanguageClientManager::editorOpened(Core::IEditor *editor)
if (client->reachable())
client->cursorPositionChanged(widget);
});
updateEditorToolBar(editor);
if (TextEditor::TextDocument *document = textEditor->textDocument()) {
if (Client *client = m_clientForDocument[document])
widget->addHoverHandler(client->hoverHandler());
client->activateEditor(editor);
}
}
}