mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04: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' |