From 01a98131d403ef89c79d442e5b9f36eb28e0c3b7 Mon Sep 17 00:00:00 2001 From: Predrag Nikolic Date: Tue, 2 Mar 2021 22:00:49 +0100 Subject: [PATCH] save recieved completions in a dict grouped by session name, instead of saving all results in one list --- plugin/completion.py | 5 +++-- plugin/documents.py | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin/completion.py b/plugin/completion.py index f748d45ca..61356d4a9 100644 --- a/plugin/completion.py +++ b/plugin/completion.py @@ -11,13 +11,14 @@ from .core.views import show_lsp_popup from .core.views import update_lsp_popup +SessionName = str class LspResolveDocsCommand(LspTextCommand): - completions = [] # type: List[CompletionItem] + completions = {} # type: Dict[SessionName, List[CompletionItem]] def run(self, edit: sublime.Edit, index: int, session_name: str, event: Optional[dict] = None) -> None: - item = self.completions[index] + item = self.completions[session_name][index] detail = self.format_documentation(item.get('detail') or "") documentation = self.format_documentation(item.get("documentation") or "") # don't show the detail in the cooperate AC popup if it is already shown in the AC details filed. diff --git a/plugin/documents.py b/plugin/documents.py index f7a1dc925..ea8a3f08a 100644 --- a/plugin/documents.py +++ b/plugin/documents.py @@ -640,7 +640,7 @@ def completion_request() -> Promise[ResolvedCompletions]: ).then(lambda response: (response, session.config.name)) completion_promises.append(completion_request()) - LspResolveDocsCommand.completions = [] + LspResolveDocsCommand.completions = {} Promise.all(completion_promises).then( lambda responses: self._on_all_settled(responses, resolve_completion_list)) @@ -672,11 +672,10 @@ def _on_all_settled( elif isinstance(response, list): response_items = response response_items = sorted(response_items, key=lambda item: item.get("sortText") or item["label"]) - LspResolveDocsCommand.completions.extend(response_items) + LspResolveDocsCommand.completions[session_name] = response_items can_resolve_completion_items = session.has_capability('completionProvider.resolveProvider') - items_count = len(items) items.extend( - format_completion(response_item, items_count + index, can_resolve_completion_items, session.config.name) + format_completion(response_item, index, can_resolve_completion_items, session.config.name) for index, response_item in enumerate(response_items)) if items: flags |= sublime.INHIBIT_REORDER