neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

lyrics.vim (1178B)


      1 " Vim syntax file
      2 " Language:     LyRiCs
      3 " Maintainer:   ObserverOfTime <chronobserver@disroot.org>
      4 " Filenames:    *.lrc
      5 " Last Change:  2025 Jan 13
      6 
      7 if exists('b:current_syntax')
      8    finish
      9 endif
     10 
     11 let s:cpo_save = &cpoptions
     12 set cpoptions&vim
     13 
     14 syn case ignore
     15 
     16 " Errors
     17 syn match lrcError /^.\+$/
     18 
     19 " ID tags
     20 syn match lrcTag /^\s*\[\a\+:.\+\]\s*$/ contains=lrcTagName,lrcTagValue
     21 syn match lrcTagName contained nextgroup=lrcTagValue
     22            \ /\[\zs\(al\|ar\|au\|by\|encoding\|la\|id\|length\|offset\|re\|ti\|ve\)\ze:/
     23 syn match lrcTagValue /:\zs.\+\ze\]/ contained
     24 
     25 " Lyrics
     26 syn match lrcLyricTime /^\s*\(\[\d\d:\d\d\.\d\d\d\?\]\)\+/
     27            \ contains=lrcNumber nextgroup=lrcLyricLine
     28 syn match lrcLyricLine /.*$/ contained contains=lrcWordTime,@Spell
     29 syn match lrcWordTime /<\d\d:\d\d\.\d\d>/ contained contains=lrcNumber,@NoSpell
     30 syn match lrcNumber /[+-]\=\d\+/ contained
     31 
     32 hi def link lrcLyricTime Label
     33 hi def link lrcNumber Number
     34 hi def link lrcTag PreProc
     35 hi def link lrcTagName Identifier
     36 hi def link lrcTagValue String
     37 hi def link lrcWordTime Special
     38 hi def link lrcError Error
     39 
     40 let b:current_syntax = 'lyrics'
     41 
     42 let &cpoptions = s:cpo_save
     43 unlet s:cpo_save