Implement a preview window for selecting locations to open

This commit is contained in:
w0rp
2018-04-22 15:53:01 +01:00
parent d8a673515a
commit 87ad4dfbe7
6 changed files with 104 additions and 25 deletions

View File

@@ -13,26 +13,10 @@ function! ale#definition#SetMap(map) abort
let s:go_to_definition_map = a:map
endfunction
" This function is used so we can check the execution of commands without
" running them.
function! ale#definition#Execute(expr) abort
execute a:expr
endfunction
function! ale#definition#ClearLSPData() abort
let s:go_to_definition_map = {}
endfunction
function! ale#definition#Open(options, filename, line, column) abort
if a:options.open_in_tab
call ale#definition#Execute('tabedit ' . fnameescape(a:filename))
else
call ale#definition#Execute('edit ' . fnameescape(a:filename))
endif
call cursor(a:line, a:column)
endfunction
function! ale#definition#HandleTSServerResponse(conn_id, response) abort
if get(a:response, 'command', '') is# 'definition'
\&& has_key(s:go_to_definition_map, a:response.request_seq)
@@ -43,7 +27,7 @@ function! ale#definition#HandleTSServerResponse(conn_id, response) abort
let l:line = a:response.body[0].start.line
let l:column = a:response.body[0].start.offset
call ale#definition#Open(l:options, l:filename, l:line, l:column)
call ale#util#Open(l:filename, l:line, l:column, l:options)
endif
endif
endfunction
@@ -67,7 +51,7 @@ function! ale#definition#HandleLSPResponse(conn_id, response) abort
let l:line = l:item.range.start.line + 1
let l:column = l:item.range.start.character
call ale#definition#Open(l:options, l:filename, l:line, l:column)
call ale#util#Open(l:filename, l:line, l:column, l:options)
break
endfor
endif