X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=vim%2Flilypond-indent.vim;h=224f5de4cdfd511946b9173767f7b36220868460;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=25d92e9baaaac42bae678df6ddd6d39692e2d1da;hpb=18c88a4738e736e7d9dcad0cc6347e05d21b6ce7;p=lilypond.git diff --git a/vim/lilypond-indent.vim b/vim/lilypond-indent.vim index 25d92e9baa..224f5de4cd 100644 --- a/vim/lilypond-indent.vim +++ b/vim/lilypond-indent.vim @@ -1,7 +1,7 @@ " LilyPond indent file " Language: LilyPond " Maintainer: Heikki Junes -" Last Change: 2004 Mar 01 +" Last Change: 2010 Jul 26 " " Installed As: vim/indent/lilypond.vim " @@ -38,6 +38,21 @@ function GetLilyPondIndent() let ind = ind - &sw endif + " Check if the first character from the previous line is within + " a `lilyScheme' region, and if so, use lisp-style indentation + " for the current line. + " + " TODO: + " - Only works in version 7.1.215 or later, though it should + " silently fail in older versions. + " - We should support `lilyScheme' regions that begin in the + " middle of the line, too. + for id in synstack(lnum, 1) + if synIDattr(id, "name") == "lilyScheme" + let ind = lispindent(v:lnum) + endif + endfor + return ind endfunction "