neovim

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

srt.vim (2140B)


      1 " Vim syntax file
      2 " Language:	SubRip
      3 " Maintainer:	ObserverOfTime <chronobserver@disroot.org>
      4 " Filenames:	*.srt
      5 " Last Change:	2022 Sep 12
      6 
      7 if exists('b:current_syntax')
      8    finish
      9 endif
     10 
     11 syn spell toplevel
     12 
     13 syn cluster srtSpecial contains=srtBold,srtItalics,srtStrikethrough,srtUnderline,srtFont,srtTag,srtEscape
     14 
     15 " Number
     16 syn match srtNumber /^\d\+$/ contains=@NoSpell
     17 
     18 " Range
     19 syn match srtRange /\d\d:\d\d:\d\d[,.]\d\d\d --> \d\d:\d\d:\d\d[,.]\d\d\d/ skipwhite contains=srtArrow,srtTime nextgroup=srtCoordinates
     20 syn match srtArrow /-->/ contained contains=@NoSpell
     21 syn match srtTime /\d\d:\d\d:\d\d[,.]\d\d\d/ contained contains=@NoSpell
     22 syn match srtCoordinates /X1:\d\+ X2:\d\+ Y1:\d\+ Y2:\d\+/ contained contains=@NoSpell
     23 
     24 " Bold
     25 syn region srtBold matchgroup=srtFormat start=+<b>+ end=+</b>+ contains=@srtSpecial
     26 syn region srtBold matchgroup=srtFormat start=+{b}+ end=+{/b}+ contains=@srtSpecial
     27 
     28 " Italics
     29 syn region srtItalics matchgroup=srtFormat start=+<i>+ end=+</i>+ contains=@srtSpecial
     30 syn region srtItalics matchgroup=srtFormat start=+{i}+ end=+{/i}+ contains=@srtSpecial
     31 
     32 " Strikethrough
     33 syn region srtStrikethrough matchgroup=srtFormat start=+<s>+ end=+</s>+ contains=@srtSpecial
     34 syn region srtStrikethrough matchgroup=srtFormat start=+{s}+ end=+{/s}+ contains=@srtSpecial
     35 
     36 " Underline
     37 syn region srtUnderline matchgroup=srtFormat start=+<u>+ end=+</u>+ contains=@srtSpecial
     38 syn region srtUnderline matchgroup=srtFormat start=+{u}+ end=+{/u}+ contains=@srtSpecial
     39 
     40 " Font
     41 syn region srtFont matchgroup=srtFormat start=+<font[^>]\{-}>+ end=+</font>+ contains=@srtSpecial
     42 
     43 " ASS tags
     44 syn match srtTag /{\\[^}]\{1,}}/ contains=@NoSpell
     45 
     46 " Special characters
     47 syn match srtEscape /\\[nNh]/ contains=@NoSpell
     48 
     49 hi def link srtArrow Delimiter
     50 hi def link srtCoordinates Label
     51 hi def link srtEscape SpecialChar
     52 hi def link srtFormat Special
     53 hi def link srtNumber Number
     54 hi def link srtTag PreProc
     55 hi def link srtTime String
     56 
     57 hi srtBold cterm=bold gui=bold
     58 hi srtItalics cterm=italic gui=italic
     59 hi srtStrikethrough cterm=strikethrough gui=strikethrough
     60 hi srtUnderline cterm=underline gui=underline
     61 
     62 let b:current_syntax = 'srt'