aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <mattn.jp@gmail.com>2020-03-01 20:18:51 +0900
committerYasuhiro Matsumoto <mattn.jp@gmail.com>2020-03-01 20:18:51 +0900
commit1607814d6332edd2f1fed7207b25a758b28c7f7a (patch)
tree0e6a18333a53e4d9c5005e5504902388a3446c21
parentdee0c2ad3a64e87b05bd09db79e2d7625a73e353 (diff)
downloadvim-lsp-settings-1607814d6332edd2f1fed7207b25a758b28c7f7a.tar.gz
vim-lsp-settings-1607814d6332edd2f1fed7207b25a758b28c7f7a.tar.bz2
vim-lsp-settings-1607814d6332edd2f1fed7207b25a758b28c7f7a.zip
Add client-side commands
-rw-r--r--settings/eclipse-jdt-ls.vim7
-rw-r--r--settings/rust-analyzer.vim15
2 files changed, 22 insertions, 0 deletions
diff --git a/settings/eclipse-jdt-ls.vim b/settings/eclipse-jdt-ls.vim
index 1307b0e..987fd79 100644
--- a/settings/eclipse-jdt-ls.vim
+++ b/settings/eclipse-jdt-ls.vim
@@ -12,3 +12,10 @@ augroup vimlsp_settings_eclipse_jdt_ls
\ 'semantic_highlight': lsp_settings#get('eclipse-jdt-ls', 'semantic_highlight', {}),
\ }
augroup END
+
+function! s:eclipse_jdt_ls_java_apply_workspaceEdit(context)
+ let l:command = get(a:context, 'command', {})
+
+ call lsp#utils#workspace_edit#apply_workspace_edit(l:command['arguments'][0])
+endfunction
+call lsp#register_command('java.apply.workspaceEdit', function('s:eclipse_jdt_ls_java_apply_workspaceEdit'))
diff --git a/settings/rust-analyzer.vim b/settings/rust-analyzer.vim
index 993add9..b0f25ce 100644
--- a/settings/rust-analyzer.vim
+++ b/settings/rust-analyzer.vim
@@ -12,3 +12,18 @@ augroup vimlsp_settings_rust-analyzer
\ 'semantic_highlight': lsp_settings#get('rust-analyzer', 'semantic_highlight', {}),
\ }
augroup END
+
+function! s:rust_analyzer_apply_source_change(context)
+ let l:command = get(a:context, 'command', {})
+
+ let l:workspace_edit = get(l:command['arguments'][0], 'workspaceEdit', {})
+ if !empty(l:workspace_edit)
+ call lsp#utils#workspace_edit#apply_workspace_edit(l:workspace_edit)
+ endif
+
+ let l:cursor_position = get(l:command['arguments'][0], 'cursorPosition', {})
+ if !empty(l:cursor_position)
+ call cursor(lsp#utils#position#_lsp_to_vim('%', l:cursor_position))
+ endif
+endfunction
+call lsp#register_command('rust-analyzer.applySourceChange', function('s:rust_analyzer_apply_source_change'))