mirror of
https://github.com/neovim/neovim.git
synced 2026-01-02 17:36:56 +10:00
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122
Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.
62d8f3dab5
N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses
Co-authored-by: Christian Brabandt <cb@256bit.org>
175 lines
6.5 KiB
VimL
175 lines
6.5 KiB
VimL
" Vim syntax file
|
|
" Language: ChordPro 6 (https://www.chordpro.org)
|
|
" Maintainer: Niels Bo Andersen <niels@niboan.dk>
|
|
" Last Change: 2022-04-15
|
|
" 2024 Dec 31: add "keys" as syntax keyword (via: https://groups.google.com/g/vim_dev/c/vP4epus0euM/m/mNoDY6hsCQAJ)
|
|
|
|
" 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 keys
|
|
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
|