diff options
Diffstat (limited to 'settings/sqls.vim')
-rw-r--r-- | settings/sqls.vim | 29 |
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 |