blob: 1a7b3bf4be5d453907b7482910b6d133eac39173 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: abc music notation language
3" Maintainer: James Allwright <J.R.Allwright@westminster.ac.uk>
4" URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
5" Last Change: 27th April 2001
6
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02007" quit when a syntax file was already loaded
8if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00009 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020036" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000037
Bram Moolenaarf37506f2016-08-31 22:22:10 +020038hi def link abcComment Comment
39hi def link abcHeadField Type
40hi def link abcBodyField Special
41hi def link abcBar Statement
42hi def link abcTuple Statement
43hi def link abcBroken Statement
44hi def link abcTie Statement
45hi def link abcGuitarChord Identifier
46hi def link abcNote Constant
Bram Moolenaar071d4272004-06-13 20:20:40 +000047
Bram Moolenaar071d4272004-06-13 20:20:40 +000048
49let b:current_syntax = "abc"
50
51" vim: ts=4