Skip to content

Commit af3dd5d

Browse files
committed
reflect reviews
1 parent 132e6f8 commit af3dd5d

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

autoload/lsp.vim

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ function! lsp#default_get_supported_capabilities(server_info) abort
631631
\ 'window': {
632632
\ 'workDoneProgress': g:lsp_work_done_progress_enabled ? v:true : v:false,
633633
\ 'showDocument': {
634-
\ 'support': g:lsp_experimental_show_document ? v:true : v:false,
634+
\ 'support': g:lsp_show_document ? v:true : v:false,
635635
\ },
636636
\ },
637637
\ 'workspace': {
@@ -948,13 +948,36 @@ function! s:on_request(server_name, id, request) abort
948948
elseif a:request['method'] ==# 'window/workDoneProgress/create'
949949
call s:send_response(a:server_name, { 'id': a:request['id'], 'result': v:null})
950950
elseif a:request['method'] ==# 'window/showDocument'
951-
if !g:lsp_experimental_show_document | return | endif
952-
let l:cmd = g:lsp_show_document_command
951+
if !g:lsp_show_document | return | endif
952+
let l:uri = a:request['params']['uri']
953+
if !lsp#utils#is_file_uri(l:uri)
954+
call s:send_response(a:server_name, { 'id': a:request['id'], 'result': {'success': v:false}})
955+
return
956+
endif
957+
let l:path = lsp#utils#uri_to_path(l:uri)
958+
let l:loc = {
959+
\ 'filename': l:path,
960+
\ 'lnum': 1,
961+
\ 'col': 1,
962+
\ }
953963
if has_key(a:request['params'], 'selection')
954-
let l:cmd .= ' +' . a:request['params']['selection']['start']['line']
964+
let [l:line, l:col] = lsp#utils#position#lsp_to_vim(l:path, a:request['selection']['start'])
965+
let l:loc['lnum'] = l:line
966+
let l:loc['col'] = l:col
967+
endif
968+
969+
let l:takefocus = v:true
970+
if has_key(a:request['params'], 'takeFocus') && (!a:request['params']['takeFocus'])
971+
let l:takefocus = v:false
972+
endif
973+
let l:lastbuf = bufnr('%')
974+
let l:lastlnum = line('.')
975+
let l:lastcol = col('.')
976+
977+
call lsp#utils#location#_open_vim_list_item(l:loc, '')
978+
if !l:takefocus
979+
execute 'buffer ' . l:lastbuf . ' | call cursor('.l:lastlnum.','.l:lastcol.')'
955980
endif
956-
let l:cmd .= ' ' . lsp#utils#uri_to_path(a:request['params']['uri'])
957-
execute l:cmd
958981
call s:send_response(a:server_name, { 'id': a:request['id'], 'result': {'success': v:true}})
959982
else
960983
" TODO: for now comment this out until we figure out a better solution.

doc/vim-lsp.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2244,8 +2244,8 @@ workspace folder.
22442244
==============================================================================
22452245
Show Document *vim-lsp-show-document*
22462246

2247-
Show Document is an experimental feature of vim-lsp. To enable this, set
2248-
`let g:lsp_experimental_show_document = 1`.
2247+
Show Document is a feature of vim-lsp to allow language servers to open a
2248+
document in vim. To enable this, set `let g:lsp_show_document = 1`.
22492249

22502250
When the client and the server supports Show Document, the client open a file
22512251
requested from the server.

plugin/lsp.vim

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ let g:lsp_get_supported_capabilities = get(g:, 'lsp_get_supported_capabilities',
8888
let g:lsp_document_symbol_detail = get(g:, 'lsp_document_symbol_detail', 0)
8989

9090
let g:lsp_experimental_workspace_folders = get(g:, 'lsp_experimental_workspace_folders', 0)
91-
let g:lsp_experimental_show_document = get(g:, 'lsp_experimental_show_document', 0)
92-
let g:lsp_show_document_command = get(g:, 'lsp_show_document_command', 'edit')
91+
let g:lsp_show_document = get(g:, 'lsp_show_document', 0)
9392

9493
if g:lsp_auto_enable
9594
augroup lsp_auto_enable

0 commit comments

Comments
 (0)