forked from aniani/vim
		
	
		
			
				
	
	
		
			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'
 |