From bbe547e7dd4910af19ea66954afe0937fa3e671d Mon Sep 17 00:00:00 2001 From: leafOfTree Date: Wed, 21 Oct 2026 12:12:18 +0000 Subject: [PATCH] Fix E409 when css syntax isn't loaded The v-bind() region in style contains cssValue.* groups, which don't exist without css syntax, like when syntax in the config has only script. Opening a file then showed E409 and E475. Add the style highlights only if css syntax is loaded. --- syntax/vue.vim | 4 ++++ test/cases/no-css.vim | 7 +++++++ test/cases/no-css.vue | 7 +++++++ 3 files changed, 18 insertions(+) create mode 100644 test/cases/no-css.vim create mode 100644 test/cases/no-css.vue diff --git a/syntax/vue.vim b/syntax/vue.vim index 4aeddd5..9924565 100644 --- a/syntax/vue.vim +++ b/syntax/vue.vim @@ -170,6 +170,10 @@ function! s:HighlightVueTag() endfunction function! s:HighlightVueStyle() + " Only with css syntax, as contains= below fails without cssValue* groups + if !hlexists('cssTagName') + return + endif syntax keyword cssPseudoClassId contained deep slotted global syntax region cssFunction contained matchgroup=cssFunctionName \ start="\<\(v-bind\)\s*(" end=")" diff --git a/test/cases/no-css.vim b/test/cases/no-css.vim new file mode 100644 index 0000000..394b439 --- /dev/null +++ b/test/cases/no-css.vim @@ -0,0 +1,7 @@ +" Without css syntax, like only script in config +let g:vim_vue_plugin_config = {'syntax': {'script': ['javascript']}} +let g:test_flatten = 1 + +function! Check() + call ExpectEqual(GetVueTag(2), 'script', 'tag') +endfunction diff --git a/test/cases/no-css.vue b/test/cases/no-css.vue new file mode 100644 index 0000000..11ed269 --- /dev/null +++ b/test/cases/no-css.vue @@ -0,0 +1,7 @@ +