From 73e9babd2e0b7126e0031f67b4f8144a6b870c78 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sun, 15 Sep 2024 00:21:16 -0500 Subject: [PATCH] More wiring of lsp manager calls and responses 2 --- src/core/controllers/lsp_controller_events.py | 36 ++++++++++++------- src/libs/dto/lsp_messages.py | 25 +++++++++++-- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/core/controllers/lsp_controller_events.py b/src/core/controllers/lsp_controller_events.py index 1cc8295..1d1b0d2 100644 --- a/src/core/controllers/lsp_controller_events.py +++ b/src/core/controllers/lsp_controller_events.py @@ -5,7 +5,7 @@ import os from gi.repository import GLib # Application imports -from libs.dto.lsp_messages import get_message_obj, didopen_notification, completion_request, didchange_notification +from libs.dto.lsp_messages import get_message_obj, didopen_notification, didsave_notification, didclose_notification, completion_request, didchange_notification @@ -40,12 +40,21 @@ class LSPControllerEvents: GLib.idle_add( self.send_notification, method, params ) def _lsp_did_save(self, data: dict): - # GLib.idle_add( self.send_notification, method, params ) - ... + method = data["method"] + params = didsave_notification["params"] + + params["textDocument"]["uri"] = data["uri"] + params["text"] = data["text"] + + GLib.idle_add( self.send_notification, method, params ) def _lsp_did_close(self, data: dict): - # GLib.idle_add( self.send_notification, method, params ) - ... + method = data["method"] + params = didclose_notification["params"] + + params["textDocument"]["uri"] = data["uri"] + + GLib.idle_add( self.send_notification, method, params ) def _lsp_did_change(self, data: dict): method = data["method"] @@ -55,13 +64,14 @@ class LSPControllerEvents: params["textDocument"]["languageId"] = data["language_id"] params["textDocument"]["version"] = data["version"] - contentChanges = params["contentChanges"][0] - start = contentChanges["range"]["start"] - end = contentChanges["range"]["end"] - start["line"] = data["line"] - start["character"] = 0 - end["line"] = data["line"] - end["character"] = data["column"] + contentChanges = params["contentChanges"][0] + start = contentChanges["range"]["start"] + end = contentChanges["range"]["end"] + contentChanges["text"] = data["text"] + start["line"] = data["line"] + start["character"] = 0 + end["line"] = data["line"] + end["character"] = data["column"] GLib.idle_add( self.send_notification, method, params ) @@ -85,4 +95,4 @@ class LSPControllerEvents: params["position"]["character"] = data["column"] - GLib.idle_add( self.send_request, method, params ) \ No newline at end of file + GLib.idle_add( self.send_request, method, params ) diff --git a/src/libs/dto/lsp_messages.py b/src/libs/dto/lsp_messages.py index d45a45b..65cee04 100644 --- a/src/libs/dto/lsp_messages.py +++ b/src/libs/dto/lsp_messages.py @@ -40,6 +40,7 @@ content_part = { } } + didopen_notification = { "method": "textDocument/didOpen", "params": { @@ -52,6 +53,26 @@ didopen_notification = { } } +didsave_notification = { + "method": "textDocument/didSave", + "params": { + "textDocument": { + "uri": "file://" + }, + "text": "" + } +} + +didclose_notification = { + "method": "textDocument/didClose", + "params": { + "textDocument": { + "uri": "file://" + } + } +} + + didchange_notification = { "method": "textDocument/didChange", "params": { @@ -100,7 +121,7 @@ completion_request = { }, "contet": { "triggerKind": 3, - "triggerCharacter": + "triggerCharacter": "" } } } @@ -153,4 +174,4 @@ symbols_request = { "text": "" } } -} \ No newline at end of file +}