summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMagnus Groß <21310755+vimpostor@users.noreply.github.com>2021-12-09 15:21:39 +0100
committerGitHub <noreply@github.com>2021-12-09 23:21:39 +0900
commit9860dadbc952b227b2d25269e717ae801c5d6f2c (patch)
tree276866e1ac7f55ff734d49b8e374b4abb060ceff /test
parentde67f4743d9ffd1694d15b1b91fedfaa0a5cda70 (diff)
downloadale-9860dadbc952b227b2d25269e717ae801c5d6f2c.zip
Initialize hl-groups correctly if virtual text is loaded first (#3960)
If virtualtext.vim is autoloaded first, it will link ALEVirtualTextWarning to ALEWarning. But ALEWarning is not initialized yet, so it will create ALEWarning, but with no color definition set. Shortly after, highlight.vim is autoloaded, which would usually link ALEWarning to SpellCap, but only if ALEWarning is not already set. However since ALEWarning is already initialized due to the previous link, we skip this and never actually come around to properly initializing it. We fix this by initializing all highlight groups in highlight.vim, thus satisfying the dependency of ALEVirtualTextWarning being initialized after ALEWarning. Fixes #3585
Diffstat (limited to 'test')
-rw-r--r--test/test_highlight_placement.vader17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/test_highlight_placement.vader b/test/test_highlight_placement.vader
index dab73073..44ae369b 100644
--- a/test/test_highlight_placement.vader
+++ b/test/test_highlight_placement.vader
@@ -10,6 +10,7 @@ Before:
Save g:ale_exclude_highlights
Save b:ale_exclude_highlights
+ runtime autoload/ale/virtualtext.vim
runtime autoload/ale/highlight.vim
let g:ale_run_synchronously = 1
@@ -98,6 +99,10 @@ Before:
endif
endfunction
+ function! GetLinkedGroup(grp) abort
+ return synIDattr(synIDtrans(hlID(a:grp)), 'name')
+ endfunction
+
call ale#linter#Define('testft', {
\ 'name': 'x',
\ 'executable': has('win32') ? 'cmd': 'echo',
@@ -119,6 +124,9 @@ After:
call ale#linter#Reset()
call clearmatches()
call ale#sign#Clear()
+ if has('textprop') && has('popupwin')
+ call prop_type_delete('ale')
+ endif
highlight clear SomeOtherGroup
runtime autoload/ale/highlight.vim
@@ -129,6 +137,15 @@ Given testft(A Javscript file with warnings/errors):
baz wat
line four
+" Autoloading virtualtext.vim first should still properly initialize hl-groups
+Execute(Loading virtualtext first does not break highlight groups):
+ AssertEqual
+ \ "SpellBad",
+ \ GetLinkedGroup("ALEError")
+ AssertEqual
+ \ "SpellCap",
+ \ GetLinkedGroup("ALEWarning")
+
Execute(Highlights should be set when a linter runs):
ALELint
call ale#test#FlushJobs()