summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/highlight.vim20
-rw-r--r--autoload/ale/virtualtext.vim20
-rw-r--r--test/test_highlight_placement.vader17
3 files changed, 37 insertions, 20 deletions
diff --git a/autoload/ale/highlight.vim b/autoload/ale/highlight.vim
index 473ad354..c284f5ca 100644
--- a/autoload/ale/highlight.vim
+++ b/autoload/ale/highlight.vim
@@ -22,6 +22,26 @@ if !hlexists('ALEInfo')
highlight link ALEInfo ALEWarning
endif
+if !hlexists('ALEVirtualTextError')
+ highlight link ALEVirtualTextError ALEError
+endif
+
+if !hlexists('ALEVirtualTextStyleError')
+ highlight link ALEVirtualTextStyleError ALEVirtualTextError
+endif
+
+if !hlexists('ALEVirtualTextWarning')
+ highlight link ALEVirtualTextWarning ALEWarning
+endif
+
+if !hlexists('ALEVirtualTextStyleWarning')
+ highlight link ALEVirtualTextStyleWarning ALEVirtualTextWarning
+endif
+
+if !hlexists('ALEVirtualTextInfo')
+ highlight link ALEVirtualTextInfo ALEVirtualTextWarning
+endif
+
" The maximum number of items for the second argument of matchaddpos()
let s:MAX_POS_VALUES = 8
let s:MAX_COL_SIZE = 1073741824 " pow(2, 30)
diff --git a/autoload/ale/virtualtext.vim b/autoload/ale/virtualtext.vim
index 598bc1bf..345deb70 100644
--- a/autoload/ale/virtualtext.vim
+++ b/autoload/ale/virtualtext.vim
@@ -18,26 +18,6 @@ elseif has('textprop') && has('popupwin')
let s:has_virt_text = 1
endif
-if !hlexists('ALEVirtualTextError')
- highlight link ALEVirtualTextError ALEError
-endif
-
-if !hlexists('ALEVirtualTextStyleError')
- highlight link ALEVirtualTextStyleError ALEVirtualTextError
-endif
-
-if !hlexists('ALEVirtualTextWarning')
- highlight link ALEVirtualTextWarning ALEWarning
-endif
-
-if !hlexists('ALEVirtualTextStyleWarning')
- highlight link ALEVirtualTextStyleWarning ALEVirtualTextWarning
-endif
-
-if !hlexists('ALEVirtualTextInfo')
- highlight link ALEVirtualTextInfo ALEVirtualTextWarning
-endif
-
function! ale#virtualtext#Clear() abort
if !s:has_virt_text
return
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()