Merge syntax config per block

syntax in g:vim_vue_plugin_config replaced the whole default, so
{'syntax': {'script': ['javascript', 'typescript']}} removed template
and style, which then had no highlight or indent. Replace the default
of each key separately, like vim-svelte-plugin. A block can be removed
by setting it to [].
This commit is contained in:
leafOfTree committed 2026-10-21 13:52:18 +00:00
1 parent 824aff651d
commit 84fe692afe
5 files changed
+36 -3

No files matched your search

+5 -2
View File
@@ -1,5 +1,8 @@
" Without css syntax, like only script in config
let g:vim_vue_plugin_config = {'syntax': {'script': ['javascript']}}
" Without css syntax, like only script in config, removing template and style
" by []
let g:vim_vue_plugin_config = {
\'syntax': {'script': ['javascript'], 'template': [], 'style': []},
\}
let g:test_flatten = 1
function! Check()
+10
View File
@@ -0,0 +1,10 @@
" Each key of syntax replaces the default of the same key, so template and
" style keep html and css
let g:vim_vue_plugin_config = {'syntax': {'script': ['javascript', 'typescript']}}
let g:test_flatten = 1
function! Check()
call ExpectBlock('<div>', 'template', 'html', 'htmlTemplateBlock')
call ExpectBlock('let count', 'script', 'typescript', 'typescriptScriptBlock')
call ExpectBlock('color: red', 'style', 'css', 'cssStyleBlock')
endfunction
+13
View File
@@ -0,0 +1,13 @@
<template>
<div>{{ count }}</div>
</template>
<script lang="ts">
let count: number = 0
</script>
<style>
p {
color: red;
}
</style>