chatito.vim (731B)
1 " Vim indent file 2 " Language: Chatito 3 " Maintainer: ObserverOfTime <chronobserver@disroot.org> 4 " Last Change: 2022 Sep 20 5 6 if exists('b:did_indent') 7 finish 8 endif 9 let b:did_indent = 1 10 11 setlocal indentexpr=GetChatitoIndent() 12 setlocal indentkeys=o,O,*<Return>,0#,!^F 13 14 let b:undo_indent = 'setl inde< indk<' 15 16 if exists('*GetChatitoIndent') 17 finish 18 endif 19 20 function GetChatitoIndent() 21 let l:prev = v:lnum - 1 22 if getline(prevnonblank(l:prev)) =~# '^[~%@]\[' 23 " shift indent after definitions 24 return shiftwidth() 25 elseif getline(l:prev) !~# '^\s*$' 26 " maintain indent in sentences 27 return indent(l:prev) 28 else 29 " reset indent after a blank line 30 return 0 31 end 32 endfunction