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; using namespace TextEditor;
for (Client *interface : reachableClients()) if (auto *textEditor = qobject_cast<BaseTextEditor *>(editor)) {
interface->openDocument(document); if (TextEditorWidget *widget = textEditor->editorWidget()) {
connect(widget, &TextEditorWidget::requestLinkAt, this,
if (auto textDocument = qobject_cast<TextDocument *>(document)) { [this, filePath = editor->document()->filePath()]
if (BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(textDocument)) { (const QTextCursor &cursor, Utils::ProcessLinkCallback &callback){
if (TextEditorWidget *widget = editor->editorWidget()) { findLinkAt(filePath, cursor, callback);
connect(widget, &TextEditorWidget::requestLinkAt, this, });
[this, filePath = document->filePath()] connect(widget, &TextEditorWidget::requestUsages, this,
(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback){ [this, filePath = editor->document()->filePath()]
findLinkAt(filePath, cursor, callback); (const QTextCursor &cursor){
}); findUsages(filePath, cursor);
connect(widget, &TextEditorWidget::requestUsages, this, });
[this, filePath = 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) void LanguageClientManager::documentClosed(Core::IDocument *document)
{ {
const DidCloseTextDocumentParams params( const DidCloseTextDocumentParams params(

View File

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