diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-04 12:41:27 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-04 12:41:27 +0300 |
| commit | 4f2d36194b4f299aa7509d815c07121039ea833b (patch) | |
| tree | f3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/runtime/syntax/ssa.mnv | |
| parent | 5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff) | |
| download | Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.tar.gz Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.zip | |
NOISSUE change uvim folder name to mnv
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'mnv/runtime/syntax/ssa.mnv')
| -rw-r--r-- | mnv/runtime/syntax/ssa.mnv | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/mnv/runtime/syntax/ssa.mnv b/mnv/runtime/syntax/ssa.mnv new file mode 100644 index 0000000000..f26c28198e --- /dev/null +++ b/mnv/runtime/syntax/ssa.mnv @@ -0,0 +1,67 @@ +" MNV syntax file +" Language: SubStation Alpha +" Maintainer: ObserverOfTime <chronobserver@disroot.org> +" Filenames: *.ass,*.ssa +" Last Change: 2024 Apr 28 + +if exists('b:current_syntax') + finish +endif + +" Comments +syn keyword ssaTodo TODO FIXME NOTE XXX contained +syn match ssaComment /^\(;\|!:\).*$/ contains=ssaTodo,@Spell +syn match ssaTextComment /{[^}]*}/ contained contains=@Spell + +" Sections +syn match ssaSection /^\[[a-zA-Z0-9+ ]\+\]$/ + +" Headers +syn match ssaHeader /^[^;!:]\+:/ skipwhite nextgroup=ssaField + +" Fields +syn match ssaField /[^,]*\(,\|$\)/ contained skipwhite contains=ssaDelimiter,ssaTime nextgroup=ssaField + +" Time +syn match ssaTime /\d:\d\d:\d\d\.\d\d/ contained + +" Delimiter +syn match ssaDelimiter /,/ contained + +" Dialogue +syn match ssaDialogue /^Dialogue:/ transparent skipwhite nextgroup=ssaDialogueFields +syn match ssaDialogueFields /\([^,]*,\)\{9\}/ contained transparent skipwhite contains=ssaField,ssaDelimiter nextgroup=ssaText + +" Text +syn match ssaText /.*$/ contained contains=@ssaTags,@Spell +syn cluster ssaTags contains=ssaOverrideTag,ssaEscapeChar,ssaTextComment,ssaItalics,ssaBold,ssaUnderline,ssaStrikeout + +" Override tags +syn match ssaOverrideTag /{\\[^}]\+}/ contained contains=@NoSpell + +" Special characters +syn match ssaEscapeChar /\\[nNh{}]/ contained contains=@NoSpell + +" Markup +syn region ssaItalics start=/{\\i1}/ end=/{\\i0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaBold start=/{\\b1}/ end=/{\\b0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaUnderline start=/{\\u1}/ end=/{\\u0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaStrikeout start=/{\\s1}/ end=/{\\s0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell + +hi def link ssaDelimiter Delimiter +hi def link ssaComment Comment +hi def link ssaEscapeChar SpecialChar +hi def link ssaField String +hi def link ssaHeader Label +hi def link ssaSection StorageClass +hi def link ssaOverrideTag Special +hi def link ssaTextComment Comment +hi def link ssaTime Number +hi def link ssaTodo Todo + +hi ssaBold cterm=bold gui=bold +hi ssaItalics cterm=italic gui=italic +hi ssaStrikeout cterm=strikethrough gui=strikethrough +hi ssaUnderline cterm=underline gui=underline + +let b:current_syntax = 'ssa' |
