Fix bug with ALEPrevious for blank lines.

ALEPrevious (as well as ALEPreviousWrap) does not work if there is an
error in empty line like 'W391: blank line at end of file' in python.
This commit is contained in:
ilex 2017-08-13 11:56:41 +03:00
parent e6b6146731
commit bc548b2ef9
2 changed files with 11 additions and 1 deletions

View File

@ -32,7 +32,7 @@ function! ale#loclist_jumping#FindNearest(direction, wrap) abort
\ {
\ 'bufnr': bufnr(''),
\ 'lnum': l:item.lnum,
\ 'col': min([max([l:item.col, 1]), len(getline(l:item.lnum))]),
\ 'col': min([max([l:item.col, 1]), max([len(getline(l:item.lnum)), 1])]),
\ },
\ l:search_item
\)

View File

@ -33,6 +33,7 @@ Given foobar (Some imaginary filetype):
12345678
12345678
Execute(loclist jumping should jump correctly when not wrapping):
AssertEqual [2, 1], TestJump('before', 0, [2, 2])
AssertEqual [1, 3], TestJump('before', 0, [2, 1])
@ -74,3 +75,12 @@ Execute(We shouldn't move when jumping to the first item where there are none):
let g:ale_buffer_info[bufnr('%')].loclist = []
AssertEqual [1, 6], TestJump(0, 0, [1, 6])
Execute(We should be able to jump when the error line is blank):
call add(g:ale_buffer_info[bufnr('%')].loclist, {'bufnr': bufnr(''), 'lnum': 3, 'col': 1})
AssertEqual 0, len(getline(3))
AssertEqual [2, 8], TestJump('before', 0, [3, 1])
AssertEqual [2, 8], TestJump('before', 1, [3, 1])
AssertEqual [3, 1], TestJump('after', 0, [3, 1])
AssertEqual [1, 2], TestJump('after', 1, [3, 1])