3 " Maintainer: Giftpflanze <gifti@tools.wmflabs.org>
4 " Last Change: 2022 August 23
6 if exists("b:did_indent")
11 setlocal indentexpr=GetFactorIndent(v:lnum)
13 let b:undo_indent = 'setlocal indentexpr<'
15 if exists("*GetFactorIndent")
19 function! GetFactorIndent(lnum)
20 let cline = getline(a:lnum)
21 let pline = getline(a:lnum-1)
22 let pind = indent(a:lnum-1)
24 return pind + shiftwidth()
27 return pind - shiftwidth()
30 return pind + shiftwidth()
32 if cline =~ '^\s*[\]}]'
33 return pind - shiftwidth()