Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / indent / yacc.vim
blob2ab7d7b38ccdf18fce12df556f9f40f5ee58d4b1
1 " Vim indent file
2 " Language:         YACC input file
3 " Maintainer:       Nikolai Weibull <now@bitwi.se>
4 " Latest Revision:  2006-12-20
6 " Only load this indent file when no other was loaded.
7 if exists("b:did_indent")
8   finish
9 endif
11 let b:did_indent = 1
13 setlocal indentexpr=GetYaccIndent()
14 setlocal indentkeys=!^F,o,O
15 setlocal nosmartindent
17 " Only define the function once.
18 if exists("*GetYaccIndent")
19   finish
20 endif
22 function GetYaccIndent()
23   if v:lnum == 1
24     return 0
25   endif
27   let ind = indent(v:lnum - 1)
28   let line = getline(v:lnum - 1)
30   if line == ''
31     let ind = 0
32   elseif line =~ '^\w\+\s*:'
33     let ind = ind + matchend(line, '^\w\+\s*')
34   elseif line =~ '^\s*;'
35     let ind = 0
36   else
37     let ind = indent(v:lnum)
38   endif
40   return ind
41 endfunction