1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-28 04:26:46 +01:00
vim/runtime/indent/yacc.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

45 lines
858 B
VimL
Raw Permalink Normal View History

2004-06-13 20:20:40 +00:00
" Vim indent file
2022-04-27 15:25:03 +01:00
" Language: YACC input file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Last Change: 2022 April 25
2004-06-13 20:20:40 +00:00
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetYaccIndent()
setlocal indentkeys=!^F,o,O
2007-05-10 18:32:52 +00:00
setlocal nosmartindent
2004-06-13 20:20:40 +00:00
2022-04-27 15:25:03 +01:00
let b:undo_indent = "setl inde< indk< si<"
2004-06-13 20:20:40 +00:00
" Only define the function once.
if exists("*GetYaccIndent")
finish
endif
function GetYaccIndent()
if v:lnum == 1
return 0
endif
let ind = indent(v:lnum - 1)
let line = getline(v:lnum - 1)
if line == ''
let ind = 0
elseif line =~ '^\w\+\s*:'
let ind = ind + matchend(line, '^\w\+\s*')
elseif line =~ '^\s*;'
let ind = 0
else
let ind = indent(v:lnum)
endif
return ind
endfunction