aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/languageclientmanager.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2019-03-12 12:46:38 +0100
committerDavid Schulz <david.schulz@qt.io>2019-03-12 12:47:43 +0000
commitdd92ef15c196b48fa16fa5430bd4c7f29f7a5589 (patch)
treedd54474e8c08046959a27cb5bdc85bafffdda0ba /src/plugins/languageclient/languageclientmanager.cpp
parent2db65630ddaf9bbdbc45acd746e7b7426405489e (diff)
LanguageClient: Use document instead of editor opened/closed
Makes sure that the same document is not twice reported as opened to the language server. Change-Id: I348b0f4d8f9162e6ba73a4e3292abce146935eca Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientmanager.cpp')
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index 22261e6273..7d481816a4 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -69,10 +69,10 @@ void LanguageClientManager::init()
using namespace Core;
using namespace ProjectExplorer;
QTC_ASSERT(managerInstance, return);
- connect(EditorManager::instance(), &EditorManager::editorOpened,
- managerInstance, &LanguageClientManager::editorOpened);
- connect(EditorManager::instance(), &EditorManager::editorsClosed,
- managerInstance, &LanguageClientManager::editorsClosed);
+ connect(EditorManager::instance(), &EditorManager::documentOpened,
+ managerInstance, &LanguageClientManager::documentOpened);
+ connect(EditorManager::instance(), &EditorManager::documentClosed,
+ managerInstance, &LanguageClientManager::documentClosed);
connect(EditorManager::instance(), &EditorManager::saved,
managerInstance, &LanguageClientManager::documentContentsSaved);
connect(EditorManager::instance(), &EditorManager::aboutToSave,
@@ -195,10 +195,9 @@ void LanguageClientManager::clientFinished(Client *client)
}
}
-void LanguageClientManager::editorOpened(Core::IEditor *iEditor)
+void LanguageClientManager::documentOpened(Core::IDocument *document)
{
using namespace TextEditor;
- Core::IDocument *document = iEditor->document();
for (Client *interface : reachableClients())
interface->openDocument(document);
@@ -208,28 +207,24 @@ void LanguageClientManager::editorOpened(Core::IEditor *iEditor)
connect(widget, &TextEditorWidget::requestLinkAt, this,
[this, filePath = document->filePath()]
(const QTextCursor &cursor, Utils::ProcessLinkCallback &callback){
- findLinkAt(filePath, cursor, callback);
- });
+ findLinkAt(filePath, cursor, callback);
+ });
connect(widget, &TextEditorWidget::requestUsages, this,
[this, filePath = document->filePath()]
(const QTextCursor &cursor){
- findUsages(filePath, cursor);
- });
+ findUsages(filePath, cursor);
+ });
}
}
}
}
-void LanguageClientManager::editorsClosed(const QList<Core::IEditor *> &editors)
+void LanguageClientManager::documentClosed(Core::IDocument *document)
{
- for (auto iEditor : editors) {
- if (auto editor = qobject_cast<TextEditor::BaseTextEditor *>(iEditor)) {
- const DidCloseTextDocumentParams params(TextDocumentIdentifier(
- DocumentUri::fromFileName(editor->document()->filePath())));
- for (Client *interface : reachableClients())
- interface->closeDocument(params);
- }
- }
+ const DidCloseTextDocumentParams params(
+ TextDocumentIdentifier(DocumentUri::fromFileName(document->filePath())));
+ for (Client *interface : reachableClients())
+ interface->closeDocument(params);
}
void LanguageClientManager::documentContentsSaved(Core::IDocument *document)