Skip to content

Commit

Permalink
Fix end line number when it exceeds the file (dense-analysis#4130)
Browse files Browse the repository at this point in the history
If the end of the error exceeds the file, set it to the last line,
similarly as it is done with the beginning of the error.
  • Loading branch information
skyfmmf authored and cyyever committed Jul 11, 2022
1 parent b0916ca commit a9dd23e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
6 changes: 6 additions & 0 deletions autoload/ale/engine.vim
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,12 @@ function! ale#engine#FixLocList(buffer, linter_name, from_other_source, loclist)

if has_key(l:old_item, 'end_lnum')
let l:item.end_lnum = str2nr(l:old_item.end_lnum)

" When the error ends after the end of the file, put it at the
" end. This is only done for the current buffer.
if l:item.bufnr == a:buffer && l:item.end_lnum > l:last_line_number
let l:item.end_lnum = l:last_line_number
endif
endif

if has_key(l:old_item, 'sub_type')
Expand Down
15 changes: 8 additions & 7 deletions test/test_loclist_corrections.vader
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ Execute(FixLocList should set items with lines beyond the end to the last line):
\ 'text': 'a',
\ 'lnum': 10,
\ 'col': 0,
\ 'end_lnum': 10,
\ 'bufnr': bufnr('%'),
\ 'vcol': 0,
\ 'type': 'E',
Expand All @@ -135,7 +136,7 @@ Execute(FixLocList should set items with lines beyond the end to the last line):
\ bufnr('%'),
\ 'foobar',
\ 0,
\ [{'text': 'a', 'lnum': 11}],
\ [{'text': 'a', 'lnum': 11, 'end_lnum': 12}],
\ )

Execute(FixLocList should move line 0 to line 1):
Expand Down Expand Up @@ -223,9 +224,9 @@ Execute(FixLocList should pass on end_lnum values):
\ [
\ {
\ 'text': 'a',
\ 'lnum': 10,
\ 'lnum': 7,
\ 'col': 10,
\ 'end_lnum': 13,
\ 'end_lnum': 10,
\ 'end_col': 12,
\ 'bufnr': bufnr('%'),
\ 'vcol': 0,
Expand All @@ -235,9 +236,9 @@ Execute(FixLocList should pass on end_lnum values):
\ },
\ {
\ 'text': 'a',
\ 'lnum': 10,
\ 'lnum': 7,
\ 'col': 11,
\ 'end_lnum': 13,
\ 'end_lnum': 10,
\ 'end_col': 12,
\ 'bufnr': bufnr('%'),
\ 'vcol': 0,
Expand All @@ -251,8 +252,8 @@ Execute(FixLocList should pass on end_lnum values):
\ 'foobar',
\ 0,
\ [
\ {'text': 'a', 'lnum': '010', 'col': '010', 'end_col': '012', 'end_lnum': '013'},
\ {'text': 'a', 'lnum': '010', 'col': '011', 'end_col': 12, 'end_lnum': 13},
\ {'text': 'a', 'lnum': '07', 'col': '010', 'end_col': '012', 'end_lnum': '010'},
\ {'text': 'a', 'lnum': '07', 'col': '011', 'end_col': 12, 'end_lnum': 10},
\ ],
\ )

Expand Down

0 comments on commit a9dd23e

Please sign in to comment.