aboutsummaryrefslogtreecommitdiff
path: root/settings/sqls.vim
diff options
context:
space:
mode:
Diffstat (limited to 'settings/sqls.vim')
-rw-r--r--settings/sqls.vim29
1 files changed, 29 insertions, 0 deletions
diff --git a/settings/sqls.vim b/settings/sqls.vim
index a8477dc..6f746c1 100644
--- a/settings/sqls.vim
+++ b/settings/sqls.vim
@@ -12,3 +12,32 @@ augroup vimlsp_settings_sqls
\ 'semantic_highlight': lsp_settings#get('sqls', 'semantic_highlight', {}),
\ }
augroup END
+
+function! s:sqls_query() abort
+ call lsp#send_request('sqls', {
+ \ 'method': 'workspace/executeCommand',
+ \ 'params': {
+ \ 'command': 'sqls.executeQuery',
+ \ 'arguments': [lsp#utils#get_buffer_uri()],
+ \ },
+ \ 'on_notification': function('s:handle_execute_command'),
+ \ })
+endfunction
+
+function! s:handle_execute_command(data) abort
+ let l:lines = a:data['response']['result']
+ vnew
+ call setline(1, split(l:lines, "\n"))
+endfunction
+
+function! s:on_lsp_buffer_enabled() abort
+ if &ft !=# 'sql'
+ return
+ endif
+ command! -buffer LspSQLQuery call <SID>sqls_query()
+endfunction
+
+augroup lsp_install_sqls
+ au!
+ autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
+augroup END