aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/lyrics.vim
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-09-18 15:20:20 +0200
committerGitHub <noreply@github.com>2022-09-18 15:20:20 +0200
commit67df3347fd1e637f643b35239f7a20ac813ee588 (patch)
tree1dd1a5ca375a24225b86da10d55e7d08306b65bf /runtime/syntax/lyrics.vim
parent8dc61713d9db433dfa2024b45f3bc590dcb58f83 (diff)
downloadrneovim-67df3347fd1e637f643b35239f7a20ac813ee588.tar.gz
rneovim-67df3347fd1e637f643b35239f7a20ac813ee588.tar.bz2
rneovim-67df3347fd1e637f643b35239f7a20ac813ee588.zip
vim-patch:9712ff1288f9 (#20240)
Update runtime files https://github.com/vim/vim/commit/9712ff1288f942736ed76c0dec014909f067eec9
Diffstat (limited to 'runtime/syntax/lyrics.vim')
-rw-r--r--runtime/syntax/lyrics.vim43
1 files changed, 43 insertions, 0 deletions
diff --git a/runtime/syntax/lyrics.vim b/runtime/syntax/lyrics.vim
new file mode 100644
index 0000000000..42a288b51b
--- /dev/null
+++ b/runtime/syntax/lyrics.vim
@@ -0,0 +1,43 @@
+" Vim syntax file
+" Language: LyRiCs
+" Maintainer: ObserverOfTime <chronobserver@disroot.org>
+" Filenames: *.lrc
+" Last Change: 2022 Sep 18
+
+if exists('b:current_syntax')
+ finish
+endif
+
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+syn case ignore
+
+" Errors
+syn match lrcError /^.\+$/
+
+" ID tags
+syn match lrcTag /^\s*\[\a\+:.\+\]\s*$/ contains=lrcTagName,lrcTagValue
+syn match lrcTagName contained nextgroup=lrcTagValue
+ \ /\[\zs\(al\|ar\|au\|by\|encoding\|la\|id\|length\|offset\|re\|ti\|ve\)\ze:/
+syn match lrcTagValue /:\zs.\+\ze\]/ contained
+
+" Lyrics
+syn match lrcLyricTime /^\s*\[\d\d:\d\d\.\d\d\]/
+ \ contains=lrcNumber nextgroup=lrcLyricLine
+syn match lrcLyricLine /.*$/ contained contains=lrcWordTime,@Spell
+syn match lrcWordTime /<\d\d:\d\d\.\d\d>/ contained contains=lrcNumber,@NoSpell
+syn match lrcNumber /[+-]\=\d\+/ contained
+
+hi def link lrcLyricTime Label
+hi def link lrcNumber Number
+hi def link lrcTag PreProc
+hi def link lrcTagName Identifier
+hi def link lrcTagValue String
+hi def link lrcWordTime Special
+hi def link lrcError Error
+
+let b:current_syntax = 'lyrics'
+
+let &cpoptions = s:cpo_save
+unlet s:cpo_save