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