mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
521e91e1c4
Update runtime files
ce001a337e
also add `vimStdPlugin` keywords missing from previous updates
174 lines
6.4 KiB
VimL
174 lines
6.4 KiB
VimL
" Vim syntax file
|
|
" Language: ChordPro 6 (https://www.chordpro.org)
|
|
" Maintainer: Niels Bo Andersen <niels@niboan.dk>
|
|
" Last Change: 2022-04-15
|
|
|
|
" Quit when a syntax file was already loaded
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
syn case ignore
|
|
|
|
" Include embedded abc syntax
|
|
syn include @Abc syntax/abc.vim
|
|
|
|
" Lilypond and Pango syntaxes could be embedded as well, but they are not
|
|
" available in the distribution.
|
|
|
|
" Directives without arguments
|
|
syn keyword chordproDirective contained nextgroup=chordproConditional
|
|
\ new_song ns
|
|
\ start_of_chorus soc
|
|
\ chorus
|
|
\ start_of_verse sov
|
|
\ start_of_bridge sob
|
|
\ start_of_tab sot
|
|
\ start_of_grid sog
|
|
\ start_of_abc
|
|
\ start_of_ly
|
|
\ end_of_chorus eoc
|
|
\ end_of_verse eov
|
|
\ end_of_bridge eob
|
|
\ end_of_tab eot
|
|
\ end_of_grid eog
|
|
\ end_of_abc
|
|
\ end_of_ly
|
|
\ new_page np
|
|
\ new_physical_page npp
|
|
\ column_break cb
|
|
\ grid g
|
|
\ no_grid ng
|
|
\ transpose
|
|
\ chordfont cf chordsize cs chordcolour
|
|
\ footerfont footersize footercolour
|
|
\ gridfont gridsize gridcolour
|
|
\ tabfont tabsize tabcolour
|
|
\ tocfont tocsize toccolour
|
|
\ textfont tf textsize ts textcolour
|
|
\ titlefont titlesize titlecolour
|
|
|
|
" Directives with arguments. Some directives are in both groups, as they can
|
|
" be used both with and without arguments
|
|
syn keyword chordproDirWithArg contained nextgroup=chordproConditional
|
|
\ title t
|
|
\ subtitle st
|
|
\ sorttitle
|
|
\ artist
|
|
\ composer
|
|
\ lyricist
|
|
\ arranger
|
|
\ copyright
|
|
\ album
|
|
\ year
|
|
\ key
|
|
\ time
|
|
\ tempo
|
|
\ duration
|
|
\ capo
|
|
\ comment c
|
|
\ highlight
|
|
\ comment_italic ci
|
|
\ comment_box cb
|
|
\ image
|
|
\ start_of_chorus soc
|
|
\ chorus
|
|
\ start_of_verse sov
|
|
\ start_of_bridge sob
|
|
\ start_of_tab sot
|
|
\ start_of_grid sog
|
|
\ start_of_abc
|
|
\ start_of_ly
|
|
\ define
|
|
\ chord
|
|
\ transpose
|
|
\ chordfont cf chordsize cs chordcolour
|
|
\ footerfont footersize footercolour
|
|
\ gridfont gridsize gridcolour
|
|
\ tabfont tabsize tabcolour
|
|
\ tocfont tocsize toccolour
|
|
\ textfont tf textsize ts textcolour
|
|
\ titlefont titlesize titlecolour
|
|
\ pagetype
|
|
\ titles
|
|
\ columns col
|
|
|
|
syn keyword chordproMetaKeyword contained meta
|
|
syn keyword chordproMetadata contained title sorttitle subtitle artist composer lyricist arranger copyright album year key time tempo duration capo
|
|
syn keyword chordproStandardMetadata contained songindex page pages pagerange today tuning instrument user
|
|
syn match chordproStandardMetadata /instrument\.type/ contained
|
|
syn match chordproStandardMetadata /instrument\.description/ contained
|
|
syn match chordproStandardMetadata /user\.name/ contained
|
|
syn match chordproStandardMetadata /user\.fullname/ contained
|
|
|
|
syn keyword chordproDefineKeyword contained frets fingers
|
|
syn match chordproDefineKeyword /base-fret/ contained
|
|
|
|
syn match chordproArgumentsNumber /\d\+/ contained
|
|
|
|
syn match chordproCustom /x_\w\+/ contained
|
|
|
|
syn match chordproDirMatch /{\w\+\(-\w\+\)\?}/ contains=chordproDirective contained transparent
|
|
syn match chordproDirArgMatch /{\w\+\(-\w\+\)\?[: ]/ contains=chordproDirWithArg contained transparent
|
|
syn match chordproMetaMatch /{meta\(-\w\+\)\?[: ]\+\w\+/ contains=chordproMetaKeyword,chordproMetadata contained transparent
|
|
syn match chordproCustomMatch /{x_\w\+\(-\w\+\)\?[: ]/ contains=chordproCustom contained transparent
|
|
|
|
syn match chordproConditional /-\w\+/ contained
|
|
|
|
syn match chordproMetaDataOperator /[=|]/ contained
|
|
syn match chordproMetaDataValue /%{\w*/ contains=chordproMetaData,chordproStandardMetadata contained transparent
|
|
" Handles nested metadata tags, but the end of the containing chordproTag is
|
|
" not highlighted correctly, if there are more than two levels of nesting
|
|
syn region chordproMetaDataTag start=/%{\w*/ skip=/%{[^}]*}/ end=/}/ contains=chordproMetaDataValue,chordproMetaDataOperator,chordproMetadataTag contained
|
|
|
|
syn region chordproArguments start=/{\w\+\(-\w\+\)\?[: ]/hs=e+1 skip=/%{[^}]*}/ end=/}/he=s-1 contains=chordproDirArgMatch,chordproArgumentsNumber,chordproMetaDataTag contained
|
|
syn region chordproArguments start=/{\(define\|chord\)\(-\w\+\)\?[: ]/hs=e+1 end=/}/he=s-1 contains=chordproDirArgMatch,chordproDefineKeyword,chordproArgumentsNumber contained
|
|
syn region chordproArguments start=/{meta\(-\w\+\)\?[: ]/hs=e+1 skip=/%{[^}]*}/ end=/}/he=s-1 contains=chordproMetaMatch,chordproMetaDataTag contained
|
|
syn region chordproArguments start=/{x_\w\+\(-\w\+\)\?[: ]/hs=e+1 end=/}/he=s-1 contains=chordproCustomMatch contained
|
|
|
|
syn region chordproTag start=/{/ skip=/%{[^}]*}/ end=/}/ contains=chordproDirMatch,chordproArguments oneline
|
|
|
|
syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline
|
|
|
|
syn region chordproAnnotation matchgroup=chordproBracket start=/\[\*/ end=/]/ oneline
|
|
|
|
syn region chordproTab start=/{start_of_tab\(-\w\+\)\?\([: ].\+\)\?}\|{sot\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_tab}\|{eot}/me=s-1 contains=chordproTag,chordproComment keepend
|
|
|
|
syn region chordproChorus start=/{start_of_chorus\(-\w\+\)\?\([: ].\+\)\?}\|{soc\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_chorus}\|{eoc}/me=s-1 contains=chordproTag,chordproChord,chordproAnnotation,chordproComment keepend
|
|
|
|
syn region chordproBridge start=/{start_of_bridge\(-\w\+\)\?\([: ].\+\)\?}\|{sob\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_bridge}\|{eob}/me=s-1 contains=chordproTag,chordproChord,chordproAnnotation,chordproComment keepend
|
|
|
|
syn region chordproAbc start=/{start_of_abc\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_abc}/me=s-1 contains=chordproTag,@Abc keepend
|
|
|
|
syn match chordproComment /^#.*/
|
|
|
|
" Define the default highlighting.
|
|
hi def link chordproDirective Statement
|
|
hi def link chordproDirWithArg Statement
|
|
hi def link chordproConditional Statement
|
|
hi def link chordproCustom Statement
|
|
hi def link chordproMetaKeyword Statement
|
|
hi def link chordproMetaDataOperator Operator
|
|
hi def link chordproMetaDataTag Function
|
|
hi def link chordproArguments Special
|
|
hi def link chordproArgumentsNumber Number
|
|
hi def link chordproChord Type
|
|
hi def link chordproAnnotation Identifier
|
|
hi def link chordproTag Constant
|
|
hi def link chordproTab PreProc
|
|
hi def link chordproComment Comment
|
|
hi def link chordproBracket Constant
|
|
hi def link chordproDefineKeyword Identifier
|
|
hi def link chordproMetadata Identifier
|
|
hi def link chordproStandardMetadata Identifier
|
|
hi def chordproChorus term=bold cterm=bold gui=bold
|
|
hi def chordproBridge term=italic cterm=italic gui=italic
|
|
|
|
let b:current_syntax = "chordpro"
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|