LanguageClient: connect each editor widget to the LanguageClientManager

... not just the first returned by BaseTextEditor::textEditorForDocument

Change-Id: I262cd68e6dea59aa23be718fb85d2ae68c40ef39
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2019-03-12 12:53:13 +01:00
parent dd92ef15c1
commit 543ab86ebc
2 changed files with 20 additions and 18 deletions

View File

@@ -195,30 +195,31 @@ void LanguageClientManager::clientFinished(Client *client)
}
}
void LanguageClientManager::documentOpened(Core::IDocument *document)
void LanguageClientManager::editorOpened(Core::IEditor *editor)
{
using namespace TextEditor;
for (Client *interface : reachableClients())
interface->openDocument(document);
if (auto textDocument = qobject_cast<TextDocument *>(document)) {
if (BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(textDocument)) {
if (TextEditorWidget *widget = editor->editorWidget()) {
connect(widget, &TextEditorWidget::requestLinkAt, this,
[this, filePath = document->filePath()]
(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback){
findLinkAt(filePath, cursor, callback);
});
connect(widget, &TextEditorWidget::requestUsages, this,
[this, filePath = document->filePath()]
(const QTextCursor &cursor){
findUsages(filePath, cursor);
});
}
if (auto *textEditor = qobject_cast<BaseTextEditor *>(editor)) {
if (TextEditorWidget *widget = textEditor->editorWidget()) {
connect(widget, &TextEditorWidget::requestLinkAt, this,
[this, filePath = editor->document()->filePath()]
(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback){
findLinkAt(filePath, cursor, callback);
});
connect(widget, &TextEditorWidget::requestUsages, this,
[this, filePath = editor->document()->filePath()]
(const QTextCursor &cursor){
findUsages(filePath, cursor);
});
}
}
}
void LanguageClientManager::documentOpened(Core::IDocument *document)
{
for (Client *interface : reachableClients())
interface->openDocument(document);
}
void LanguageClientManager::documentClosed(Core::IDocument *document)
{
const DidCloseTextDocumentParams params(

View File

@@ -75,6 +75,7 @@ signals:
private:
LanguageClientManager();
void editorOpened(Core::IEditor *editor);
void documentOpened(Core::IDocument *document);
void documentClosed(Core::IDocument *document);
void documentContentsSaved(Core::IDocument *document);