diff options
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/ale/cursor.vim | 45 | ||||
-rw-r--r-- | autoload/ale/debugging.vim | 6 | ||||
-rw-r--r-- | autoload/ale/engine.vim | 2 | ||||
-rw-r--r-- | autoload/ale/events.vim | 2 |
4 files changed, 49 insertions, 6 deletions
diff --git a/autoload/ale/cursor.vim b/autoload/ale/cursor.vim index 32ce8c84..9b4b9c1a 100644 --- a/autoload/ale/cursor.vim +++ b/autoload/ale/cursor.vim @@ -52,6 +52,29 @@ function! ale#cursor#TruncatedEcho(original_message) abort endtry endfunction +function! ale#cursor#ClearVirtualText() abort + if !has('nvim-0.3.2') + return + endif + + let l:buffer = bufnr('') + + call nvim_buf_clear_highlight(l:buffer, 1000, 0, -1) +endfunction + +function! ale#cursor#ShowVirtualText(message, hl_group) abort + if !has('nvim-0.3.2') + return + endif + + let l:cursor_position = getcurpos() + let l:line = line('.') + let l:buffer = bufnr('') + let l:prefix = get(g:, 'ale_virtualtext_prefix', '> ') + + call nvim_buf_set_virtual_text(l:buffer, 1000, l:line-1, [[l:prefix.a:message, a:hl_group]], {}) +endfunction + function! s:FindItemAtCursor(buffer) abort let l:info = get(g:ale_buffer_info, a:buffer, {}) let l:loclist = get(l:info, 'loclist', []) @@ -72,7 +95,7 @@ endfunction function! ale#cursor#EchoCursorWarning(...) abort let l:buffer = bufnr('') - if !g:ale_echo_cursor && !g:ale_cursor_detail + if !g:ale_echo_cursor && !g:ale_cursor_detail && !g:ale_virtualtext_cursor return endif @@ -108,12 +131,30 @@ function! ale#cursor#EchoCursorWarning(...) abort call ale#preview#CloseIfTypeMatches('ale-preview') endif endif + + if g:ale_virtualtext_cursor + call ale#cursor#ClearVirtualText() + + if !empty(l:loc) + let l:msg = get(l:loc, 'detail', l:loc.text) + let l:hl_group = 'ALEInfo' + let l:type = get(l:loc, 'type', 'E') + + if l:type is# 'E' + let l:hl_group = 'ALEError' + elseif l:type is# 'I' + let l:hl_group = 'ALEWarning' + endif + + call ale#cursor#ShowVirtualText(l:msg, l:hl_group) + endif + endif endfunction function! ale#cursor#EchoCursorWarningWithDelay() abort let l:buffer = bufnr('') - if !g:ale_echo_cursor && !g:ale_cursor_detail + if !g:ale_echo_cursor && !g:ale_cursor_detail && !g:ale_virtualtext_cursor return endif diff --git a/autoload/ale/debugging.vim b/autoload/ale/debugging.vim index 34c13770..ac7e02e3 100644 --- a/autoload/ale/debugging.vim +++ b/autoload/ale/debugging.vim @@ -22,14 +22,14 @@ let s:global_variable_list = [ \ 'ale_lint_delay', \ 'ale_lint_on_enter', \ 'ale_lint_on_filetype_changed', +\ 'ale_lint_on_insert_leave', \ 'ale_lint_on_save', \ 'ale_lint_on_text_changed', -\ 'ale_lint_on_insert_leave', \ 'ale_linter_aliases', \ 'ale_linters', \ 'ale_linters_explicit', -\ 'ale_list_window_size', \ 'ale_list_vertical', +\ 'ale_list_window_size', \ 'ale_loclist_msg_format', \ 'ale_max_buffer_history_size', \ 'ale_max_signs', @@ -52,6 +52,8 @@ let s:global_variable_list = [ \ 'ale_statusline_format', \ 'ale_type_map', \ 'ale_use_global_executables', +\ 'ale_virtualtext_cursor', +\ 'ale_virtualtext_prefix', \ 'ale_warn_about_trailing_blank_lines', \ 'ale_warn_about_trailing_whitespace', \] diff --git a/autoload/ale/engine.vim b/autoload/ale/engine.vim index e85e4d66..f49d607b 100644 --- a/autoload/ale/engine.vim +++ b/autoload/ale/engine.vim @@ -298,7 +298,7 @@ function! ale#engine#SetResults(buffer, loclist) abort endif if l:linting_is_done - if g:ale_echo_cursor + if g:ale_echo_cursor || g:ale_virtualtext_cursor " Try and echo the warning now. " This will only do something meaningful if we're in normal mode. call ale#cursor#EchoCursorWarning() diff --git a/autoload/ale/events.vim b/autoload/ale/events.vim index e48ad488..4efb42e3 100644 --- a/autoload/ale/events.vim +++ b/autoload/ale/events.vim @@ -131,7 +131,7 @@ function! ale#events#Init() abort autocmd InsertLeave * call ale#Queue(0) endif - if g:ale_echo_cursor || g:ale_cursor_detail + if g:ale_echo_cursor || g:ale_cursor_detail || g:ale_virtualtext_cursor autocmd CursorMoved,CursorHold * if exists('*ale#engine#Cleanup') | call ale#cursor#EchoCursorWarningWithDelay() | endif " Look for a warning to echo as soon as we leave Insert mode. " The script's position variable used when moving the cursor will |