summaryrefslogtreecommitdiff
path: root/vim
diff options
context:
space:
mode:
authorHeikki Junes <heikki.junes@hut.fi>2004-03-11 22:30:41 +0000
committerHeikki Junes <heikki.junes@hut.fi>2004-03-11 22:30:41 +0000
commit845257fa959b66d0579fb78a26bfcaecb43d645c (patch)
tree938d47aed91a87e2e6a977af58f42ceef472472d /vim
parentdf4892e7b4a8897a532cdb896014109a5a7d3fab (diff)
* vim/lilypond-indent.vim: use <TAB> is indent character in
insert-mode. add indenting rules.
Diffstat (limited to 'vim')
-rw-r--r--vim/lilypond-indent.vim13
1 files changed, 12 insertions, 1 deletions
diff --git a/vim/lilypond-indent.vim b/vim/lilypond-indent.vim
index e2426d6d89..1f6c681e3b 100644
--- a/vim/lilypond-indent.vim
+++ b/vim/lilypond-indent.vim
@@ -10,6 +10,7 @@ endif
let b:did_indent = 1
setlocal indentexpr=GetLilyPondIndent()
+setlocal indentkeys+==},>>,!<TAB>
" Only define the function once.
if exists("*GetLilyPondIndent")
@@ -23,7 +24,17 @@ function GetLilyPondIndent()
"Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
- let ind = indent(lnum)
+ "Check if a block was started: '{' or '<<' is the last non-blank character of the line.
+ if getline(lnum) =~ '^.*\({\|<<\)\s*$'
+ let ind = indent(lnum) + &sw
+ else
+ let ind = indent(lnum)
+ endif
+
+ "Check if a block was ended: '}' or '>>' is the first non-blank character of the line.
+ if getline(v:lnum) =~ '^\s*\(}\|>>\)'
+ let ind = ind - &sw
+ endif
return ind
endfunction