blob: 1ff5e9e3f14e1f1ff1a6f9977037ff69829e6b64 [file] [log] [blame]
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +01001" Vim indent file
2" Language: Chatito
3" Maintainer: ObserverOfTime <chronobserver@disroot.org>
4" Last Change: 2022 Sep 20
5
6if exists('b:did_indent')
7 finish
8endif
9let b:did_indent = 1
10
11setlocal indentexpr=GetChatitoIndent()
12setlocal indentkeys=o,O,*<Return>,0#,!^F
13
14let b:undo_indent = 'setl inde< indk<'
15
16if exists('*GetChatitoIndent')
17 finish
18endif
19
20function 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
32endfunction