xref: /vim-8.2.3635/runtime/indent/treetop.vim (revision 6c391a74)
1" Vim indent file
2" Language:             Treetop
3" Previous Maintainer:  Nikolai Weibull <[email protected]>
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 += shiftwidth()
30  endif
31
32  let line = getline(v:lnum)
33  if line =~ '^\s*end\>'
34    let ind -= shiftwidth()
35  end
36
37  return ind
38endfunction
39