mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
63 lines
2.1 KiB
VimL
63 lines
2.1 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: SubRip
|
||
|
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
|
||
|
" Filenames: *.srt
|
||
|
" Last Change: 2022 Sep 12
|
||
|
|
||
|
if exists('b:current_syntax')
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn spell toplevel
|
||
|
|
||
|
syn cluster srtSpecial contains=srtBold,srtItalics,srtStrikethrough,srtUnderline,srtFont,srtTag,srtEscape
|
||
|
|
||
|
" Number
|
||
|
syn match srtNumber /^\d\+$/ contains=@NoSpell
|
||
|
|
||
|
" Range
|
||
|
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
|
||
|
syn match srtArrow /-->/ contained contains=@NoSpell
|
||
|
syn match srtTime /\d\d:\d\d:\d\d[,.]\d\d\d/ contained contains=@NoSpell
|
||
|
syn match srtCoordinates /X1:\d\+ X2:\d\+ Y1:\d\+ Y2:\d\+/ contained contains=@NoSpell
|
||
|
|
||
|
" Bold
|
||
|
syn region srtBold matchgroup=srtFormat start=+<b>+ end=+</b>+ contains=@srtSpecial
|
||
|
syn region srtBold matchgroup=srtFormat start=+{b}+ end=+{/b}+ contains=@srtSpecial
|
||
|
|
||
|
" Italics
|
||
|
syn region srtItalics matchgroup=srtFormat start=+<i>+ end=+</i>+ contains=@srtSpecial
|
||
|
syn region srtItalics matchgroup=srtFormat start=+{i}+ end=+{/i}+ contains=@srtSpecial
|
||
|
|
||
|
" Strikethrough
|
||
|
syn region srtStrikethrough matchgroup=srtFormat start=+<s>+ end=+</s>+ contains=@srtSpecial
|
||
|
syn region srtStrikethrough matchgroup=srtFormat start=+{s}+ end=+{/s}+ contains=@srtSpecial
|
||
|
|
||
|
" Underline
|
||
|
syn region srtUnderline matchgroup=srtFormat start=+<u>+ end=+</u>+ contains=@srtSpecial
|
||
|
syn region srtUnderline matchgroup=srtFormat start=+{u}+ end=+{/u}+ contains=@srtSpecial
|
||
|
|
||
|
" Font
|
||
|
syn region srtFont matchgroup=srtFormat start=+<font[^>]\{-}>+ end=+</font>+ contains=@srtSpecial
|
||
|
|
||
|
" ASS tags
|
||
|
syn match srtTag /{\\[^}]\{1,}}/ contains=@NoSpell
|
||
|
|
||
|
" Special characters
|
||
|
syn match srtEscape /\\[nNh]/ contains=@NoSpell
|
||
|
|
||
|
hi def link srtArrow Delimiter
|
||
|
hi def link srtCoordinates Label
|
||
|
hi def link srtEscape SpecialChar
|
||
|
hi def link srtFormat Special
|
||
|
hi def link srtNumber Number
|
||
|
hi def link srtTag PreProc
|
||
|
hi def link srtTime String
|
||
|
|
||
|
hi srtBold cterm=bold gui=bold
|
||
|
hi srtItalics cterm=italic gui=italic
|
||
|
hi srtStrikethrough cterm=strikethrough gui=strikethrough
|
||
|
hi srtUnderline cterm=underline gui=underline
|
||
|
|
||
|
let b:current_syntax = 'srt'
|