1" Vim syntax file 2" Language: abc music notation language 3" Maintainer: James Allwright <[email protected]> 4" URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim 5" Last Change: 27th April 2001 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12" tags 13syn region abcGuitarChord start=+"[A-G]+ end=+"+ contained 14syn match abcNote "z[1-9]*[0-9]*" contained 15syn match abcNote "z[1-9]*[0-9]*/[248]\=" contained 16syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*" contained 17syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*/[248]\=" contained 18syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*" contained 19syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*/[248]\=" contained 20syn match abcBar "|" contained 21syn match abcBar "[:|][:|]" contained 22syn match abcBar ":|2" contained 23syn match abcBar "|1" contained 24syn match abcBar "\[[12]" contained 25syn match abcTuple "([1-9]\+:\=[0-9]*:\=[0-9]*" contained 26syn match abcBroken "<\|<<\|<<<\|>\|>>\|>>>" contained 27syn match abcTie "-" 28syn match abcHeadField "^[A-EGHIK-TVWXZ]:.*$" contained 29syn match abcBodyField "^[KLMPQWVw]:.*$" contained 30syn region abcHeader start="^X:" end="^K:.*$" contained contains=abcHeadField,abcComment keepend 31syn region abcTune start="^X:" end="^ *$" contains=abcHeader,abcComment,abcBar,abcNote,abcBodyField,abcGuitarChord,abcTuple,abcBroken,abcTie 32syn match abcComment "%.*$" 33 34 35" Define the default highlighting. 36" Only when an item doesn't have highlighting yet 37command -nargs=+ HiLink hi def link <args> 38 39HiLink abcComment Comment 40HiLink abcHeadField Type 41HiLink abcBodyField Special 42HiLink abcBar Statement 43HiLink abcTuple Statement 44HiLink abcBroken Statement 45HiLink abcTie Statement 46HiLink abcGuitarChord Identifier 47HiLink abcNote Constant 48 49delcommand HiLink 50 51let b:current_syntax = "abc" 52 53" vim: ts=4 54