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