diff options
| author | Florian Fischer <gitlab@muhq.space> | 2024-04-08 17:35:25 +0000 |
|---|---|---|
| committer | Florian Fischer <gitlab@muhq.space> | 2024-04-08 17:35:25 +0000 |
| commit | d36c417bc662a720a0bfdd60cbc8c1dc6c915041 (patch) | |
| tree | e5d92f9779cdd18d34f459e523247fb7f28d274a | |
| parent | ac7bdc1f1a84d9e7bbd28f091700993362b72525 (diff) | |
| parent | e44ec3fa609fa7701de369939674a1ea46743ea8 (diff) | |
| download | vis-lspc-d36c417bc662a720a0bfdd60cbc8c1dc6c915041.tar.gz vis-lspc-d36c417bc662a720a0bfdd60cbc8c1dc6c915041.zip | |
Merge branch 'apply-workspaceEdit-remember-cursor' into 'main'
restore the primary cursor position after a workspaceEdit
See merge request muhq/vis-lspc!47
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | init.lua | 10 | ||||
| -rw-r--r-- | lspc.lua | 3 |
3 files changed, 13 insertions, 1 deletions
@@ -137,6 +137,7 @@ Available options are: * `ls_map` - a table mapping `vis` syntax names to language server configurations * `highlight_diagnostics = 'line'` - highlight the `range` or `line`number of available diagnostics * `diagnostic_style = 'back:#e3514f'` - style used to highlight diagnostics +* `workspace_edit_remember_cursor = true` - restore the primary cursor position after a workspaceEdit #### Configure your own Language Server @@ -548,7 +548,7 @@ local function vis_apply_workspaceEdit(_, _, workspaceEdit) end end - -- It is not open currently -> open it + -- The file is not currently opened -> open it local opened if not win_with_file then vis_open_file(path, 'o') @@ -556,10 +556,18 @@ local function vis_apply_workspaceEdit(_, _, workspaceEdit) opened = true end + -- Remember the current primary cursor position + local old_pos = win_with_file.selection.pos + for _, edit in ipairs(edits) do vis_apply_textEdit(win_with_file, win_with_file.file, edit) end + -- Restore the remembered primary cursor position + if lspc.workspace_edit_remember_cursor then + win_with_file.selection.pos = old_pos + end + -- save changes and close the opened window if opened then vis:command('wq') @@ -39,6 +39,9 @@ local lspc = { -- 60% solarized red diagnostic_style = 'back:#e3514f', + -- restore the position of the primary curser after applying a workspace edit + workspace_edit_remember_cursor = true, + -- message level to show in the UI when receiving messages from the server -- Error = 1, Warning = 2, Info = 3, Log = 4 message_level = 3, |
