blob: 68f0cf16ff0ba45a48d1e73ff1c9e03e4d8acf69 [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
37command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020039HiLink 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000048
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020049delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000050
51let b:current_syntax = "abc"
52
53" vim: ts=4