wiring websocket info; updating lsp configs to use lsp-ws-proxy

This commit is contained in:
2024-09-22 14:40:22 -05:00
parent de8fe47231
commit c9a1c84715
5 changed files with 67 additions and 48 deletions

View File

@@ -32,6 +32,7 @@ class LSPController(LSPControllerWebsocket):
self._init_params = settings_manager.get_lsp_init_data()
self._start_command = None
self._socket = None
self._lsp_pid = -1
self._message_id = 0
@@ -64,6 +65,12 @@ class LSPController(LSPControllerWebsocket):
def unset_start_command(self):
self._start_command = None
def set_socket(self, socket: str):
self._socket = socket
def unset_socket(self):
self._socket = None
def send_notification(self, method: str, params: {} = {}):
self._send_message( ClientNotification(method, params) )

View File

@@ -49,6 +49,7 @@ class LSPControllerWebsocket(LSPControllerBase):
return
self.ws_client = WebsocketClient()
self.ws_client.set_socket(self._socket)
self.ws_client.set_callback(self._monitor_lsp_response)
self.ws_client.start_client()
return self.lsp_process.pid

View File

@@ -86,13 +86,15 @@ class LSPMessageBox(Gtk.Box):
self.update_message_id_label()
def start_stop_lsp(self):
parent = self.get_parent()
_command: str = parent.command_entry.get_text()
# _command: str = parent.alt_command_entry.get_text()
# _command: str = parent.socket_entry.get_text()
command: [] = _command.split() if len( _command.split() ) > 0 else [ _command ]
parent = self.get_parent()
data: str = parent.command_entry.get_text()
# data: str = parent.alt_command_entry.get_text()
socket: str = parent.socket_entry.get_text()
command: [] = data.split() if len( data.split() ) > 0 else [ data ]
self.lsp_controller.set_start_command(command)
self.lsp_controller.set_socket(socket)
self.lsp_controller.start_stop_lsp()
self.lsp_controller.unset_start_command()
self.lsp_controller.unset_socket()
self.update_message_id_label()

View File

@@ -13,8 +13,14 @@ from . import websocket
class WebsocketClient:
def __init__(self):
self.ws = None
self.ws = None
self._socket = None
def set_socket(self, socket: str):
self._socket = socket
def unset_socket(self):
self._socket = None
def send(self, message: str):
self.ws.send(message)
@@ -39,16 +45,14 @@ class WebsocketClient:
@daemon_threaded
def start_client(self):
if not self._socket:
raise Exception("Socket address isn't set so cannot start WebsocketClient listener...")
# websocket.enableTrace(True)
self.ws = websocket.WebSocketApp("ws://localhost:4114",
on_open = self.on_open,
self.ws = websocket.WebSocketApp(self._socket,
on_open = self.on_open,
on_message = self.on_message,
on_error = self.on_error,
on_close = self.on_close)
on_error = self.on_error,
on_close = self.on_close)
# Set dispatcher to automatic reconnection, 5 second reconnect delay
# self.ws.run_forever(dispatcher = rel, reconnect = 5)
# rel.signal(2, rel.abort) # Keyboard Interrupt
# rel.dispatch()
self.ws.run_forever(reconnect = 0.5)
self.ws.run_forever(reconnect = 0.5)