blob: a2af78b8c27819a871e2026efc5caa50cf122781 [file] [log] [blame]
Bram Moolenaar662db672011-03-22 14:05:35 +01001" Vim indent file
2" Language: Treetop
3" Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2011-03-14
5
6if exists("b:did_indent")
7 finish
8endif
9let b:did_indent = 1
10
11setlocal indentexpr=GetTreetopIndent()
12setlocal indentkeys=0{,0},!^F,o,O,=end
13setlocal nosmartindent
14
15if exists("*GetTreetopIndent")
16 finish
17endif
18
19function GetTreetopIndent()
20 let pnum = prevnonblank(v:lnum - 1)
21 if pnum == 0
22 return 0
23 endif
24
25 let ind = indent(pnum)
26 let line = getline(pnum)
27
28 if line =~ '^\s*\%(grammar\|module\|rule\)\>'
29 let ind += &sw
30 endif
31
32 let line = getline(v:lnum)
33 if line =~ '^\s*end\>'
34 let ind -= &sw
35 end
36
37 retur ind
38endfunction