#653 - Automatically accept annoying loclist and quickfix errors from Vim
This commit is contained in:
@@ -1,10 +1,6 @@
|
||||
" Author: w0rp <devw0rp@gmail.com>
|
||||
" Description: Completion support for LSP linters
|
||||
|
||||
" A do-nothing function so we can load this autoload file in tests.
|
||||
function! ale#completion#Nop() abort
|
||||
endfunction
|
||||
|
||||
let s:timer_id = -1
|
||||
|
||||
function! s:GetRegex(map, filetype) abort
|
||||
@@ -110,11 +106,6 @@ function! ale#completion#OmniFunc(findstart, base) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" A wrapper function for feedkeys so we can test calls for it.
|
||||
function! ale#completion#FeedKeys(string, mode) abort
|
||||
call feedkeys(a:string, a:mode)
|
||||
endfunction
|
||||
|
||||
function! ale#completion#Show(response, completion_parser) abort
|
||||
" Remember the old omnifunc value, if there is one.
|
||||
" If we don't store an old one, we'll just never reset the option.
|
||||
@@ -129,7 +120,7 @@ function! ale#completion#Show(response, completion_parser) abort
|
||||
let b:ale_completion_parser = a:completion_parser
|
||||
let &l:omnifunc = 'ale#completion#OmniFunc'
|
||||
call s:ReplaceCompleteopt()
|
||||
call ale#completion#FeedKeys("\<C-x>\<C-o>", 'n')
|
||||
call ale#util#FeedKeys("\<C-x>\<C-o>", 'n')
|
||||
endfunction
|
||||
|
||||
function! s:CompletionStillValid(request_id) abort
|
||||
|
||||
@@ -45,3 +45,25 @@ function! ale#events#FileChangedEvent(buffer) abort
|
||||
call s:LintOnEnter(a:buffer)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" When changing quickfix or a loclist window while the window is open
|
||||
" from autocmd events and while navigating from one buffer to another, Vim
|
||||
" will complain saying that the window has closed or that the lists have
|
||||
" changed.
|
||||
"
|
||||
" This timer callback just accepts those errors when they appear.
|
||||
function! s:HitReturn(...) abort
|
||||
if ale#util#Mode() is# 'r'
|
||||
redir => l:output
|
||||
silent mess
|
||||
redir end
|
||||
|
||||
if get(split(l:output, "\n"), -1, '') =~# '^E92[456]'
|
||||
call ale#util#FeedKeys("\<CR>", 'n')
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ale#events#BufWinLeave() abort
|
||||
call timer_start(0, function('s:HitReturn'))
|
||||
endfunction
|
||||
|
||||
@@ -1,11 +1,23 @@
|
||||
" Author: w0rp <devw0rp@gmail.com>
|
||||
" Description: Contains miscellaneous functions
|
||||
|
||||
" A null file for sending output to nothing.
|
||||
let g:ale#util#nul_file = '/dev/null'
|
||||
" A wrapper function for mode() so we can test calls for it.
|
||||
function! ale#util#Mode(...) abort
|
||||
return call('mode', a:000)
|
||||
endfunction
|
||||
|
||||
if has('win32')
|
||||
let g:ale#util#nul_file = 'nul'
|
||||
" A wrapper function for feedkeys so we can test calls for it.
|
||||
function! ale#util#FeedKeys(...) abort
|
||||
return call('feedkeys', a:000)
|
||||
endfunction
|
||||
|
||||
if !exists('g:ale#util#nul_file')
|
||||
" A null file for sending output to nothing.
|
||||
let g:ale#util#nul_file = '/dev/null'
|
||||
|
||||
if has('win32')
|
||||
let g:ale#util#nul_file = 'nul'
|
||||
endif
|
||||
endif
|
||||
|
||||
" Return the number of lines for a given buffer.
|
||||
|
||||
Reference in New Issue
Block a user