forked from qt-creator/qt-creator
LanguageClient: correctly initialize editors of opened documents
Change-Id: I2dee2093c0bdb97a204e89bf0db526ae405b8e78 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -845,7 +845,12 @@ void Client::activateDocument(TextEditor::TextDocument *document)
|
|||||||
document->setQuickFixAssistProvider(d->m_clientProviders.quickFixAssistProvider);
|
document->setQuickFixAssistProvider(d->m_clientProviders.quickFixAssistProvider);
|
||||||
}
|
}
|
||||||
document->setFormatter(new LanguageClientFormatter(document, this));
|
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);
|
updateEditorToolBar(editor);
|
||||||
if (editor == Core::EditorManager::currentEditor())
|
if (editor == Core::EditorManager::currentEditor())
|
||||||
TextEditor::IOutlineWidgetFactory::updateOutline();
|
TextEditor::IOutlineWidgetFactory::updateOutline();
|
||||||
@@ -854,13 +859,12 @@ void Client::activateDocument(TextEditor::TextDocument *document)
|
|||||||
widget->addHoverHandler(&d->m_hoverHandler);
|
widget->addHoverHandler(&d->m_hoverHandler);
|
||||||
d->requestDocumentHighlights(widget);
|
d->requestDocumentHighlights(widget);
|
||||||
uint optionalActions = widget->optionalActions();
|
uint optionalActions = widget->optionalActions();
|
||||||
if (symbolSupport().supportsFindUsages(document))
|
if (symbolSupport().supportsFindUsages(widget->textDocument()))
|
||||||
optionalActions |= TextEditor::TextEditorActionHandler::FindUsage;
|
optionalActions |= TextEditor::TextEditorActionHandler::FindUsage;
|
||||||
if (symbolSupport().supportsRename(document))
|
if (symbolSupport().supportsRename(widget->textDocument()))
|
||||||
optionalActions |= TextEditor::TextEditorActionHandler::RenameSymbol;
|
optionalActions |= TextEditor::TextEditorActionHandler::RenameSymbol;
|
||||||
widget->setOptionalActions(optionalActions);
|
widget->setOptionalActions(optionalActions);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::deactivateDocument(TextEditor::TextDocument *document)
|
void Client::deactivateDocument(TextEditor::TextDocument *document)
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ public:
|
|||||||
virtual void openDocument(TextEditor::TextDocument *document);
|
virtual void openDocument(TextEditor::TextDocument *document);
|
||||||
void closeDocument(TextEditor::TextDocument *document);
|
void closeDocument(TextEditor::TextDocument *document);
|
||||||
void activateDocument(TextEditor::TextDocument *document);
|
void activateDocument(TextEditor::TextDocument *document);
|
||||||
|
void activateEditor(Core::IEditor *editor);
|
||||||
void deactivateDocument(TextEditor::TextDocument *document);
|
void deactivateDocument(TextEditor::TextDocument *document);
|
||||||
bool documentOpen(const TextEditor::TextDocument *document) const;
|
bool documentOpen(const TextEditor::TextDocument *document) const;
|
||||||
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;
|
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;
|
||||||
|
|||||||
@@ -471,10 +471,9 @@ void LanguageClientManager::editorOpened(Core::IEditor *editor)
|
|||||||
if (client->reachable())
|
if (client->reachable())
|
||||||
client->cursorPositionChanged(widget);
|
client->cursorPositionChanged(widget);
|
||||||
});
|
});
|
||||||
updateEditorToolBar(editor);
|
|
||||||
if (TextEditor::TextDocument *document = textEditor->textDocument()) {
|
if (TextEditor::TextDocument *document = textEditor->textDocument()) {
|
||||||
if (Client *client = m_clientForDocument[document])
|
if (Client *client = m_clientForDocument[document])
|
||||||
widget->addHoverHandler(client->hoverHandler());
|
client->activateEditor(editor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user