Fix #741 - Set highlights for entire lines when signs are disabled
This commit is contained in:
parent
22ec81e1de
commit
5635b3c864
3 changed files with 60 additions and 3 deletions
|
@ -91,6 +91,22 @@ function! ale#highlight#UpdateHighlights() abort
|
|||
\ 'matchaddpos(l:group, v:val)'
|
||||
\)
|
||||
endfor
|
||||
|
||||
" If highlights are enabled and signs are not enabled, we should still
|
||||
" offer line highlights by adding a separate set of highlights.
|
||||
if !g:ale_set_signs
|
||||
for l:item in l:item_list
|
||||
if l:item.type is# 'W'
|
||||
let l:group = 'ALEWarningLine'
|
||||
elseif l:item.type is# 'I'
|
||||
let l:group = 'ALEInfoLine'
|
||||
else
|
||||
let l:group = 'ALEErrorLine'
|
||||
endif
|
||||
|
||||
call matchaddpos(l:group, [l:item.lnum])
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ale#highlight#BufferHidden(buffer) abort
|
||||
|
|
26
doc/ale.txt
26
doc/ale.txt
|
@ -1149,6 +1149,17 @@ g:ale_set_highlights *g:ale_set_highlights*
|
|||
|ALEStyleError| - Items with `'type': 'E'` and `'sub_type': 'style'`
|
||||
|ALEStyleWarning| - Items with `'type': 'W'` and `'sub_type': 'style'`
|
||||
|
||||
When |g:ale_set_signs| is set to `0`, the following highlights for entire
|
||||
lines will be set.
|
||||
|
||||
|ALEErrorLine| - All items with `'type': 'E'`
|
||||
|ALEWarningLine| - All items with `'type': 'W'`
|
||||
|ALEInfoLine| - All items with `'type': 'I'`
|
||||
|
||||
Vim can only highlight the characters up to the last column in a buffer for
|
||||
match highlights, whereas the line highlights when signs are enabled will
|
||||
run to the edge of the screen.
|
||||
|
||||
|
||||
g:ale_set_loclist *g:ale_set_loclist*
|
||||
|
||||
|
@ -1366,7 +1377,10 @@ ALEErrorLine *ALEErrorLine*
|
|||
|
||||
Default: Undefined
|
||||
|
||||
The highlight for lines where error signs appear. See |g:ale_set_signs|.
|
||||
The highlight for an entire line where errors appear. Only the first
|
||||
line for a problem will be highlighted.
|
||||
|
||||
See |g:ale_set_signs| and |g:ale_set_highlights|.
|
||||
|
||||
|
||||
ALEErrorSign *ALEErrorSign*
|
||||
|
@ -1394,7 +1408,10 @@ ALEInfoLine *ALEInfoLine*
|
|||
|
||||
Default: Undefined
|
||||
|
||||
The highlight for lines where info signs appear. See |g:ale_set_signs|.
|
||||
The highlight for entire lines where info messages appear. Only the first
|
||||
line for a problem will be highlighted.
|
||||
|
||||
See |g:ale_set_signs| and |g:ale_set_highlights|.
|
||||
|
||||
|
||||
ALEStyleError *ALEStyleError*
|
||||
|
@ -1436,7 +1453,10 @@ ALEWarningLine *ALEWarningLine*
|
|||
|
||||
Default: Undefined
|
||||
|
||||
The highlight for lines where warning signs appear. See |g:ale_set_signs|.
|
||||
The highlight for entire lines where warnings appear. Only the first line
|
||||
for a problem will be highlighted.
|
||||
|
||||
See |g:ale_set_signs| and |g:ale_set_highlights|.
|
||||
|
||||
|
||||
ALEWarningSign *ALEWarningSign*
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Before:
|
||||
Save g:ale_enabled
|
||||
Save g:ale_set_signs
|
||||
|
||||
function! GenerateResults(buffer, output)
|
||||
return [
|
||||
|
@ -258,3 +259,23 @@ Execute(Highlights should be cleared when ALE is disabled):
|
|||
call ale#highlight#UpdateHighlights()
|
||||
|
||||
AssertEqual [], GetMatchesWithoutIDs()
|
||||
|
||||
Execute(Line highlights should be set when signs are disabled):
|
||||
let g:ale_set_signs = 0
|
||||
|
||||
call ale#highlight#SetHighlights(bufnr(''), [
|
||||
\ {'bufnr': bufnr(''), 'type': 'E', 'lnum': 1, 'col': 1},
|
||||
\ {'bufnr': bufnr(''), 'type': 'W', 'lnum': 2, 'col': 1},
|
||||
\ {'bufnr': bufnr(''), 'type': 'I', 'lnum': 3, 'col': 1},
|
||||
\])
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {'group': 'ALEError', 'priority': 10, 'pos1': [1, 1, 1]},
|
||||
\ {'group': 'ALEWarning', 'priority': 10, 'pos1': [2, 1, 1]},
|
||||
\ {'group': 'ALEInfo', 'priority': 10, 'pos1': [3, 1, 1]},
|
||||
\ {'group': 'ALEErrorLine', 'priority': 10, 'pos1': [1]},
|
||||
\ {'group': 'ALEWarningLine', 'priority': 10, 'pos1': [2]},
|
||||
\ {'group': 'ALEInfoLine', 'priority': 10, 'pos1': [3]},
|
||||
\ ],
|
||||
\ GetMatchesWithoutIDs()
|
||||
|
|
Reference in a new issue