fix join buffer input handlers

This commit is contained in:
cschen 2025-02-19 15:57:57 +01:00
parent ce87c5334d
commit 4c64797ab9

View file

@ -22,22 +22,24 @@ class CodempJoinBufferCommand(sublime_plugin.WindowCommand):
return "Join Buffer: " return "Join Buffer: "
def input(self, args): def input(self, args):
if "workspace_id" not in args: for name in ["workspace_id", "buffer_id"]:
wslist = session.client.active_workspaces() if name not in args:
return SimpleListInput( if name == "workspace_id":
("workspace_id", wslist), wslist = session.client.active_workspaces()
) return SimpleListInput(
("workspace_id", wslist),
)
if "buffer_id" not in args: if name == "buffer_id":
try: ws = workspaces.lookupId(args["workspace_id"]) try: ws = workspaces.lookupId(args["workspace_id"])
except KeyError: except KeyError:
sublime.error_message("Workspace does not exists or is not active.") sublime.error_message("Workspace does not exists or is not active.")
return None return None
bflist = ws.handle.fetch_buffers().wait() bflist = ws.handle.fetch_buffers().wait()
return SimpleListInput( return SimpleListInput(
("buffer_id", bflist), ("buffer_id", bflist),
) )
def run(self, workspace_id, buffer_id): # pyright: ignore[reportIncompatibleMethodOverride] def run(self, workspace_id, buffer_id): # pyright: ignore[reportIncompatibleMethodOverride]
try: vws = workspaces.lookupId(workspace_id) try: vws = workspaces.lookupId(workspace_id)
@ -47,8 +49,6 @@ class CodempJoinBufferCommand(sublime_plugin.WindowCommand):
try: # if it exists already, focus and listen try: # if it exists already, focus and listen
buff = buffers.lookupId(buffer_id) buff = buffers.lookupId(buffer_id)
# safe_listener_detach(TEXT_LISTENER)
# safe_listener_attach(TEXT_LISTENER, buff.view.buffer())
self.window.focus_view(buff.view) self.window.focus_view(buff.view)
return return
except KeyError: except KeyError:
@ -67,7 +67,6 @@ class CodempJoinBufferCommand(sublime_plugin.WindowCommand):
sublime.error_message(f"Could not attach to buffer '{buffer_id}'") sublime.error_message(f"Could not attach to buffer '{buffer_id}'")
return return
vbuff = buffers.register(buff_ctl, vws) vbuff = buffers.register(buff_ctl, vws)
vbuff.sync(TEXT_LISTENER) vbuff.sync(TEXT_LISTENER)