xref: /vim-8.2.3635/runtime/syntax/chordpro.vim (revision c9b4b05b)
157657d85SBram Moolenaar" Vim syntax file
257657d85SBram Moolenaar" Language:     ChordPro (v. 3.6.2)
357657d85SBram Moolenaar" Maintainer:   Niels Bo Andersen <[email protected]>
4*c9b4b05bSBram Moolenaar" Last Change:	2006 Apr 30
557657d85SBram Moolenaar" Remark:       Requires VIM version 6.00 or greater
657657d85SBram Moolenaar
757657d85SBram Moolenaar" Quit when a syntax file was already loaded
857657d85SBram Moolenaarif exists("b:current_syntax")
957657d85SBram Moolenaar  finish
1057657d85SBram Moolenaarendif
1157657d85SBram Moolenaar
1257657d85SBram Moolenaarlet s:cpo_save = &cpo
1357657d85SBram Moolenaarset cpo&vim
1457657d85SBram Moolenaar
1557657d85SBram Moolenaarsetlocal iskeyword+=-
1657657d85SBram Moolenaar
1757657d85SBram Moolenaarsyn case ignore
1857657d85SBram Moolenaar
1957657d85SBram Moolenaarsyn keyword chordproDirective contained
2057657d85SBram Moolenaar  \ start_of_chorus soc end_of_chorus eoc new_song ns no_grid ng grid g
2157657d85SBram Moolenaar  \ new_page np new_physical_page npp start_of_tab sot end_of_tab eot
2257657d85SBram Moolenaar  \ column_break colb
2357657d85SBram Moolenaar
2457657d85SBram Moolenaarsyn keyword chordproDirWithOpt contained
2557657d85SBram Moolenaar  \ comment c comment_italic ci comment_box cb title t subtitle st define
2657657d85SBram Moolenaar  \ textfont textsize chordfont chordsize columns col
2757657d85SBram Moolenaar
2857657d85SBram Moolenaarsyn keyword chordproDefineKeyword contained base-fret frets
2957657d85SBram Moolenaar
3057657d85SBram Moolenaarsyn match chordproDirMatch /{\w*}/ contains=chordproDirective contained transparent
3157657d85SBram Moolenaarsyn match chordproDirOptMatch /{\w*:/ contains=chordproDirWithOpt contained transparent
3257657d85SBram Moolenaar
3357657d85SBram Moolenaar" Workaround for a bug in VIM 6, which causes incorrect coloring of the first {
3457657d85SBram Moolenaarif version < 700
3557657d85SBram Moolenaar  syn region chordproOptions start=/{\w*:/ end=/}/ contains=chordproDirOptMatch contained transparent
3657657d85SBram Moolenaar  syn region chordproOptions start=/{define:/ end=/}/ contains=chordproDirOptMatch, chordproDefineKeyword contained transparent
3757657d85SBram Moolenaarelse
3857657d85SBram Moolenaar  syn region chordproOptions start=/{\w*:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch contained
3957657d85SBram Moolenaar  syn region chordproOptions start=/{define:/hs=e+1 end=/}/he=s-1 contains=chordproDirOptMatch, chordproDefineKeyword contained
4057657d85SBram Moolenaarendif
4157657d85SBram Moolenaar
4257657d85SBram Moolenaarsyn region chordproTag start=/{/ end=/}/ contains=chordproDirMatch,chordproOptions oneline
4357657d85SBram Moolenaar
4457657d85SBram Moolenaarsyn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline
4557657d85SBram Moolenaar
4657657d85SBram Moolenaarsyn region chordproTab start=/{start_of_tab}\|{sot}/hs=e+1 end=/{end_of_tab}\|{eot}/he=s-1 contains=chordproTag,chordproComment keepend
4757657d85SBram Moolenaar
4857657d85SBram Moolenaarsyn region chordproChorus start=/{start_of_chorus}\|{soc}/hs=e+1 end=/{end_of_chorus}\|{eoc}/he=s-1 contains=chordproTag,chordproChord,chordproComment keepend
4957657d85SBram Moolenaar
5057657d85SBram Moolenaarsyn match chordproComment /^#.*/
5157657d85SBram Moolenaar
5257657d85SBram Moolenaar" Define the default highlighting.
5357657d85SBram Moolenaarhi def link chordproDirective Statement
5457657d85SBram Moolenaarhi def link chordproDirWithOpt Statement
5557657d85SBram Moolenaarhi def link chordproOptions Special
5657657d85SBram Moolenaarhi def link chordproChord Type
5757657d85SBram Moolenaarhi def link chordproTag Constant
5857657d85SBram Moolenaarhi def link chordproTab PreProc
5957657d85SBram Moolenaarhi def link chordproComment Comment
6057657d85SBram Moolenaarhi def link chordproBracket Constant
6157657d85SBram Moolenaarhi def link chordproDefineKeyword Type
6257657d85SBram Moolenaarhi def chordproChorus term=bold cterm=bold gui=bold
6357657d85SBram Moolenaar
6457657d85SBram Moolenaarlet b:current_syntax = "chordpro"
6557657d85SBram Moolenaar
6657657d85SBram Moolenaarlet &cpo = s:cpo_save
6757657d85SBram Moolenaarunlet s:cpo_save
68