diff --git a/autoload/SpaceVim/api/data/toml.vim b/autoload/SpaceVim/api/data/toml.vim index e3d8b35f2..70a8e7249 100644 --- a/autoload/SpaceVim/api/data/toml.vim +++ b/autoload/SpaceVim/api/data/toml.vim @@ -233,14 +233,14 @@ endfunction " function! s:self._array(input) abort let ary = [] - let _ = self._consume(a:input, '\[') + call self._consume(a:input, '\[') call self._skip(a:input) while !self._eof(a:input) && !self._match(a:input, '\]') let ary += [self._value(a:input)] call self._consume(a:input, ',\?') call self._skip(a:input) endwhile - let _ = self._consume(a:input, '\]') + call self._consume(a:input, '\]') return ary endfunction diff --git a/autoload/SpaceVim/api/vim.vim b/autoload/SpaceVim/api/vim.vim index d9ccbd9b8..6e235cf14 100644 --- a/autoload/SpaceVim/api/vim.vim +++ b/autoload/SpaceVim/api/vim.vim @@ -131,11 +131,22 @@ function! s:self.setbufvar(buf, dict) abort endfor endfunction -function! s:self.get_qf_winnr() abort - let wins = filter(getwininfo(), 'v:val.quickfix && !v:val.loclist') - " assert(len(wins) <= 1) - return empty(wins) ? 0 : wins[0].winnr -endfunction +" https://vi.stackexchange.com/questions/16585/how-to-differentiate-quickfix-window-buffers-and-location-list-buffers +if has('patch-7.4-2215') " && exists('*getwininfo') + function! s:self.get_qf_winnr() abort + let wins = filter(getwininfo(), 'v:val.quickfix && !v:val.loclist') + " assert(len(wins) <= 1) + return empty(wins) ? 0 : wins[0].winnr + endfunction +else + function! s:self.get_qf_winnr() abort + let buffers = split(self.__cmp.execute('ls!'), "\n") + call filter(buffers, 'v:val =~# "\\V[Quickfix List]"') + " :cclose removes the buffer from the list (in my config only??) + " assert(len(buffers) <= 1) + return empty(buffers) ? 0 : eval(matchstr(buffers[0], '\v^\s*\zs\d+')) + endfunction +endif function! s:self.is_qf_win(winnr) abort return a:winnr ==# self.get_qf_winnr() @@ -188,7 +199,6 @@ endfunction if has('nvim') function! s:self.getchar(...) abort if !empty(get(g:, '_spacevim_input_list', [])) - sleep 1000m return remove(g:_spacevim_input_list, 0) endif let ret = call('getchar', a:000) @@ -197,7 +207,6 @@ if has('nvim') else function! s:self.getchar(...) abort if !empty(get(g:, '_spacevim_input_list', [])) - sleep 1000m return remove(g:_spacevim_input_list, 0) endif let ret = call('getchar', a:000) diff --git a/autoload/SpaceVim/api/vim/window.vim b/autoload/SpaceVim/api/vim/window.vim index f10451587..d85865e35 100644 --- a/autoload/SpaceVim/api/vim/window.vim +++ b/autoload/SpaceVim/api/vim/window.vim @@ -79,6 +79,11 @@ if has('nvim') endfunction else function! s:self.is_float(winnr) abort + " vim without win_getid() is old, which do not support floating window. + " so if_float always return 0 + if !exists('*win_getid') + return 0 + endif let id = win_getid(a:winnr) if id > 0 && exists('*popup_getoptions') try diff --git a/autoload/SpaceVim/autocmds.vim b/autoload/SpaceVim/autocmds.vim index ebe8a2ecc..bfea9872b 100644 --- a/autoload/SpaceVim/autocmds.vim +++ b/autoload/SpaceVim/autocmds.vim @@ -9,6 +9,7 @@ let s:SYS = SpaceVim#api#import('system') let s:JOB = SpaceVim#api#import('job') +let s:VIM = SpaceVim#api#import('vim') let s:CMP = SpaceVim#api#import('vim#compatible') @@ -198,30 +199,11 @@ function! s:disable_welcome() abort endfunction function! s:close_quickfix() abort - if winnr() == s:get_qf_winnr() + if winnr() == s:VIM.get_qf_winnr() cclose else lclose endif endfunction -" https://vi.stackexchange.com/questions/16585/how-to-differentiate-quickfix-window-buffers-and-location-list-buffers -if has('patch-7.4-2215') " && exists('*getwininfo') - function! s:get_qf_winnr() abort - let wins = filter(getwininfo(), 'v:val.quickfix && !v:val.loclist') - " assert(len(wins) <= 1) - return empty(wins) ? 0 : wins[0].winnr - endfunction -else - let s:k_msg_qflist = '[Quickfix List]' - function! s:get_qf_winnr() abort - let buffers = s:CMP.execute('ls!') - call filter(buffers, 'v:val =~ "\\V".s:k_msg_qflist') - " :cclose removes the buffer from the list (in my config only??) - " assert(len(buffers) <= 1) - return empty(buffers) ? 0 : eval(matchstr(buffers[0], '\v^\s*\zs\d+')) - endfunction -endif - - " vim:set et sw=2: diff --git a/test/plugin/tabmanager.vader b/test/plugin/tabmanager.vader index 7e764f567..e57e4e383 100644 --- a/test/plugin/tabmanager.vader +++ b/test/plugin/tabmanager.vader @@ -1,5 +1,4 @@ Execute ( SpaceVim plugin: tabmanager.vim ): call SpaceVim#plugins#tabmanager#open() - LeaderGuide " " AssertEqual &ft, 'SpaceVimTabsManager' diff --git a/vimfiler b/vimfiler new file mode 100644 index 000000000..e69de29bb