diff options
author | Jasper Woudenberg <mail@jasperwoudenberg.com> | 2017-03-02 18:40:07 -0800 |
---|---|---|
committer | Jasper Woudenberg <mail@jasperwoudenberg.com> | 2017-03-02 18:40:07 -0800 |
commit | f5ddc51d8588844e7c21b0a8882114b0597ca502 (patch) | |
tree | 8ea16a1b14d235ab501ee8013ef4f0a1d98e068f /autoload | |
parent | 70711022db8c8a5602550601ef275c20b2105bcc (diff) | |
download | ale-f5ddc51d8588844e7c21b0a8882114b0597ca502.zip |
Address some feedback
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/ale/cursor.vim | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/autoload/ale/cursor.vim b/autoload/ale/cursor.vim index d6594db5..7a9cfc80 100644 --- a/autoload/ale/cursor.vim +++ b/autoload/ale/cursor.vim @@ -38,34 +38,32 @@ function! ale#cursor#TruncatedEcho(message) abort endtry endfunction +function! s:FindItemAtCursor() abort + let l:info = get(g:ale_buffer_info, bufnr('%'), {'loclist': []}) + let l:pos = getcurpos() + let l:index = ale#util#BinarySearch(l:info.loclist, l:pos[1], l:pos[2]) + let l:loc = l:index >= 0 ? l:info.loclist[l:index] : {} + + return [l:info, l:loc] +endfunction + function! ale#cursor#EchoCursorWarning(...) abort " Only echo the warnings in normal mode, otherwise we will get problems. if mode() !=# 'n' return endif - let l:buffer = bufnr('%') - - if !has_key(g:ale_buffer_info, l:buffer) - return - endif - - let l:pos = getcurpos() - let l:loclist = g:ale_buffer_info[l:buffer].loclist - let l:index = ale#util#BinarySearch(l:loclist, l:pos[1], l:pos[2]) + let [l:info, l:loc] = s:FindItemAtCursor() - if l:index >= 0 - let l:loc = l:loclist[l:index] + if !empty(l:loc) let l:msg = s:GetMessage(l:loc.linter_name, l:loc.type, l:loc.text) call ale#cursor#TruncatedEcho(l:msg) - let g:ale_buffer_info[l:buffer].echoed = 1 - else + let l:info.echoed = 1 + elseif get(l:info, 'echoed') " We'll only clear the echoed message when moving off errors once, " so we don't continually clear the echo line. - if get(g:ale_buffer_info[l:buffer], 'echoed') - echo - let g:ale_buffer_info[l:buffer].echoed = 0 - endif + echo + let l:info.echoed = 1 endif endfunction @@ -94,27 +92,19 @@ function! ale#cursor#EchoCursorWarningWithDelay() abort endif endfunction - function! ale#cursor#ShowCursorDetail(...) abort - " Only show the details in normal mode, otherwise we will get problems. + " Only echo the warnings in normal mode, otherwise we will get problems. if mode() !=# 'n' return endif - let l:buffer = bufnr('%') - - if !has_key(g:ale_buffer_info, l:buffer) - return - endif - - let l:pos = getcurpos() - let l:loclist = g:ale_buffer_info[l:buffer].loclist - let l:index = ale#util#BinarySearch(l:loclist, l:pos[1], l:pos[2]) + let [l:info, l:loc] = s:FindItemAtCursor() - if l:index >= 0 - let l:loc = l:loclist[l:index] + if !empty(l:loc) if has_key(l:loc, 'detail') echo l:loc.detail + else + echo l:loc.text endif endif endfunction |