diff options
author | w0rp <devw0rp@gmail.com> | 2017-07-07 23:47:41 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-07-07 23:47:41 +0100 |
commit | 8eb4f95766350b7a1f80eae691f390faee045e6d (patch) | |
tree | 8d3973d0226c83d129fa8c2292befb5adf601759 /test/test_highlight_placement.vader | |
parent | 46225f3bb13a242bf3b218d395f3911f013d5f14 (diff) | |
download | ale-8eb4f95766350b7a1f80eae691f390faee045e6d.zip |
#697 - Clear all highlights every time items are set again, and refactor most things. Clear errors when linters are removed
Diffstat (limited to 'test/test_highlight_placement.vader')
-rw-r--r-- | test/test_highlight_placement.vader | 92 |
1 files changed, 40 insertions, 52 deletions
diff --git a/test/test_highlight_placement.vader b/test/test_highlight_placement.vader index a134916f..3fa45ed2 100644 --- a/test/test_highlight_placement.vader +++ b/test/test_highlight_placement.vader @@ -22,6 +22,18 @@ Before: \] endfunction + " We don't care what the IDs are, just that we have some matches. + " The IDs are generated. + function! GetMatchesWithoutIDs() abort + let l:list = getmatches() + + for l:item in l:list + call remove(l:item, 'id') + endfor + + return l:list + endfunction + call ale#linter#Define('testft', { \ 'name': 'x', \ 'executable': 'echo', @@ -51,33 +63,11 @@ Execute(Highlights should be set when a linter runs): AssertEqual \ [ - \ {'group': 'ALEError', 'id': 4, 'priority': 10, 'pos1': [1, 1, 1]}, - \ {'group': 'ALEWarning', 'id': 5, 'priority': 10, 'pos1': [2, 1, 1]}, - \ {'group': 'ALEError', 'id': 6, 'priority': 10, 'pos1': [3, 5, 1]} - \ ], - \ getmatches() - - AssertEqual [[4], [5], [6]], map(copy(g:ale_buffer_info[bufnr('')].loclist), 'v:val.match_id_list') - -Execute(Existing highlights should be kept): - call matchaddpos('ALEError', [[1, 2, 1]], 10, 347) - call matchaddpos('ALEWarning', [[2, 2, 1]], 10, 348) - - call ale#highlight#SetHighlights(bufnr('%'), [ - \ {'bufnr': bufnr('%'), 'match_id_list': [347], 'type': 'E', 'lnum': 1, 'col': 2}, - \ {'bufnr': bufnr('%'), 'match_id_list': [348], 'type': 'W', 'lnum': 2, 'col': 2}, - \ {'bufnr': bufnr('%'), 'type': 'E', 'lnum': 3, 'col': 2}, - \ {'bufnr': bufnr('%'), 'type': 'W', 'lnum': 4, 'col': 1}, - \]) - - AssertEqual - \ [ - \ {'group': 'ALEError', 'id': 347, 'priority': 10, 'pos1': [1, 2, 1]}, - \ {'group': 'ALEWarning', 'id': 348, 'priority': 10, 'pos1': [2, 2, 1]}, - \ {'group': 'ALEError', 'id': 7, 'priority': 10, 'pos1': [3, 2, 1]}, - \ {'group': 'ALEWarning', 'id': 8, 'priority': 10, 'pos1': [4, 1, 1]}, + \ {'group': 'ALEError', 'priority': 10, 'pos1': [1, 1, 1]}, + \ {'group': 'ALEWarning', 'priority': 10, 'pos1': [2, 1, 1]}, + \ {'group': 'ALEError', 'priority': 10, 'pos1': [3, 5, 1]} \ ], - \ getmatches() + \ GetMatchesWithoutIDs() " This test is important for preventing ALE from showing highlights for " the wrong files. @@ -89,12 +79,12 @@ Execute(Highlights set by ALE should be removed when buffer cleanup is done): \]) AssertEqual - \ [{'group': 'ALEError', 'id': 9, 'priority': 10, 'pos1': [3, 2, 1]}], - \ getmatches() + \ [{'group': 'ALEError', 'priority': 10, 'pos1': [3, 2, 1]}], + \ GetMatchesWithoutIDs() - call ale#cleanup#Buffer(bufnr('%')) + call ale#engine#Cleanup(bufnr('%')) - AssertEqual [], getmatches() + AssertEqual [], GetMatchesWithoutIDs() Execute(Highlights should be cleared when buffers are hidden): call ale#engine#InitBufferInfo(bufnr('%')) @@ -108,15 +98,15 @@ Execute(Highlights should be cleared when buffers are hidden): \ g:ale_buffer_info[bufnr('%')].loclist \) - AssertEqual 1, len(getmatches()), 'The highlights weren''t initially set!' + AssertEqual 1, len(GetMatchesWithoutIDs()), 'The highlights weren''t initially set!' call ale#highlight#BufferHidden(bufnr('%')) - AssertEqual 0, len(getmatches()), 'The highlights weren''t cleared!' + AssertEqual 0, len(GetMatchesWithoutIDs()), 'The highlights weren''t cleared!' call ale#highlight#UpdateHighlights() - AssertEqual 1, len(getmatches()), 'The highlights weren''t set again!' + AssertEqual 1, len(GetMatchesWithoutIDs()), 'The highlights weren''t set again!' Execute(Only ALE highlights should be restored when buffers are restored): call ale#engine#InitBufferInfo(bufnr('%')) @@ -131,16 +121,16 @@ Execute(Only ALE highlights should be restored when buffers are restored): call matchaddpos('SomeOtherGroup', [[1, 1, 1]]) " We should have one more match here. - AssertEqual 2, len(getmatches()), 'The highlights weren''t initially set!' + AssertEqual 2, len(GetMatchesWithoutIDs()), 'The highlights weren''t initially set!' call ale#highlight#BufferHidden(bufnr('%')) - AssertEqual 0, len(getmatches()), 'The highlights weren''t cleared!' + AssertEqual 0, len(GetMatchesWithoutIDs()), 'The highlights weren''t cleared!' call ale#highlight#UpdateHighlights() " Only our matches should appear again. - AssertEqual 1, len(getmatches()), 'The highlights weren''t set again!' + AssertEqual 1, len(GetMatchesWithoutIDs()), 'The highlights weren''t set again!' Execute(Higlight end columns should set an appropriate size): call ale#highlight#SetHighlights(bufnr('%'), [ @@ -150,10 +140,10 @@ Execute(Higlight end columns should set an appropriate size): AssertEqual \ [ - \ {'group': 'ALEError', 'id': 15, 'priority': 10, 'pos1': [3, 2, 4]}, - \ {'group': 'ALEWarning', 'id': 16, 'priority': 10, 'pos1': [4, 1, 5]}, + \ {'group': 'ALEError', 'priority': 10, 'pos1': [3, 2, 4]}, + \ {'group': 'ALEWarning', 'priority': 10, 'pos1': [4, 1, 5]}, \ ], - \ getmatches() + \ GetMatchesWithoutIDs() Execute(Higlight end columns should set an appropriate size): call ale#highlight#SetHighlights(bufnr('%'), [ @@ -168,15 +158,15 @@ Execute(Higlight end columns should set an appropriate size): AssertEqual \ [ - \ {'group': 'ALEError', 'id': 17, 'priority': 10, 'pos1': [1, 1, 1]}, - \ {'group': 'ALEError', 'id': 18, 'priority': 10, 'pos1': [2, 1, 1]}, - \ {'group': 'ALEStyleError', 'id': 19, 'priority': 10, 'pos1': [3, 1, 1]}, - \ {'group': 'ALEWarning', 'id': 20, 'priority': 10, 'pos1': [4, 1, 1]}, - \ {'group': 'ALEWarning', 'id': 21, 'priority': 10, 'pos1': [5, 1, 1]}, - \ {'group': 'ALEStyleWarning', 'id': 22, 'priority': 10, 'pos1': [6, 1, 1]}, - \ {'group': 'ALEInfo', 'id': 23, 'priority': 10, 'pos1': [7, 1, 1]}, + \ {'group': 'ALEError', 'priority': 10, 'pos1': [1, 1, 1]}, + \ {'group': 'ALEError', 'priority': 10, 'pos1': [2, 1, 1]}, + \ {'group': 'ALEStyleError', 'priority': 10, 'pos1': [3, 1, 1]}, + \ {'group': 'ALEWarning', 'priority': 10, 'pos1': [4, 1, 1]}, + \ {'group': 'ALEWarning', 'priority': 10, 'pos1': [5, 1, 1]}, + \ {'group': 'ALEStyleWarning', 'priority': 10, 'pos1': [6, 1, 1]}, + \ {'group': 'ALEInfo', 'priority': 10, 'pos1': [7, 1, 1]}, \ ], - \ getmatches() + \ GetMatchesWithoutIDs() Execute(Highlighting should support errors spanning many lines): let g:items = [ @@ -189,15 +179,13 @@ Execute(Highlighting should support errors spanning many lines): AssertEqual \ [ \ { - \ 'group': 'ALEError', 'id': 24, 'priority': 10, 'pos1': [1, 1, 1073741824], + \ 'group': 'ALEError', 'priority': 10, 'pos1': [1, 1, 1073741824], \ 'pos2': [2], 'pos3': [3], 'pos4': [4], 'pos5': [5], 'pos6': [6], \ 'pos7': [7], 'pos8': [8], \ }, \ { - \ 'group': 'ALEError', 'id': 25, 'priority': 10, + \ 'group': 'ALEError', 'priority': 10, \ 'pos1': [9], 'pos2': [10, 1, 3] \ }, \ ], - \ getmatches() - - AssertEqual [[24, 25]], map(copy(g:items), 'v:val.match_id_list') + \ GetMatchesWithoutIDs() |