Updated Vim version in Dockerfile and made UpdateTagStack clearer

The `settagstack` and `gettagstack` functions don't exist prior to Vim
8.1.0519.  And the function definition was unclear whether it intended
  to grab the *old* or the *new* file/line/col.
This commit is contained in:
Reed Riley 2019-04-24 09:54:42 -04:00
parent c36f3e78e4
commit 46c743a247
2 changed files with 5 additions and 3 deletions

View File

@ -1,7 +1,7 @@
FROM tweekmonster/vim-testbed:latest
RUN install_vim -tag v8.0.0027 -build \
-tag v8.1.0204 -build \
-tag v8.1.0519 -build \
-tag neovim:v0.2.0 -build \
-tag neovim:v0.3.0 -build

View File

@ -24,10 +24,12 @@ function! ale#definition#UpdateTagStack() abort
let l:should_update_tagstack = exists('*gettagstack') && exists('*settagstack') && g:ale_update_tagstack
if l:should_update_tagstack
let l:from = [bufnr('%'), line('.'), col('.'), 0]
" Grab the old location (to jump back to) and the word under the
" cursor (as a label for the tagstack)
let l:old_location = [bufnr('%'), line('.'), col('.'), 0]
let l:tagname = expand('<cword>')
let l:winid = win_getid()
call settagstack(l:winid, {'items': [{'from': l:from, 'tagname': l:tagname}]}, 'a')
call settagstack(l:winid, {'items': [{'from': l:old_location, 'tagname': l:tagname}]}, 'a')
call settagstack(l:winid, {'curidx': len(gettagstack(l:winid)['items']) + 1})
endif
endfunction