Support shiftwidth=0 in indent and fold

With shiftwidth=0, Vim uses the value of tabstop, but &sw is 0. So
multiline tags and brackets got wrong indent, and fold levels were wrong
as indent was divided by 0. Use shiftwidth() instead, which is the same
as &sw when it isn't 0.
This commit is contained in:
leafOfTree committed 2026-10-21 12:11:58 +00:00
1 parent ee1a608c40
commit abb7144824
4 files changed
+50 -15

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
" shiftwidth=0 uses the value of tabstop, same as shiftwidth=4 here
set shiftwidth=0 tabstop=4
let g:vim_vue_plugin_config = {'foldexpr': 1}
let g:test_flatten = 1
function! Check()
let levels = [1, 2, 3, 2, 3, 4, 3, 3, 2, 1]
for lnum in range(1, len(levels))
call ExpectFoldlevel(lnum, levels[lnum - 1])
endfor
endfunction
+24
View File
@@ -0,0 +1,24 @@
<template>
<div
class="a"
>
<input
type="text"
>
<p :class="{ a: b }">x</p>
</div>
</template>
<script>
export default {
data() {
return { a: 1 }
},
}
</script>
<style>
p {
color: red;
}
</style>