diff runtime/syntax/lyrics.vim @ 30324:0827d3d6d8c0

Update runtime files Commit: https://github.com/vim/vim/commit/9712ff1288f942736ed76c0dec014909f067eec9 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 18 13:04:22 2022 +0100 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sun, 18 Sep 2022 14:15:05 +0200
parents
children 7b4f0a2a87bf
line wrap: on
line diff
new file mode 100644
--- /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