mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 521e91e1c4
			
		
	
	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
 |