aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorObserverOfTime <chronobserver@disroot.org>2024-04-29 00:50:13 +0300
committerGitHub <noreply@github.com>2024-04-29 05:50:13 +0800
commita26c114577b2cbd91d2fa055cf37eea10579e6a3 (patch)
tree054f1893725505503e888ecf3fa92954f6f0ff40
parent54d8786d102c174327d6c78fe99f6c0f58022b34 (diff)
downloadrneovim-a26c114577b2cbd91d2fa055cf37eea10579e6a3.tar.gz
rneovim-a26c114577b2cbd91d2fa055cf37eea10579e6a3.tar.bz2
rneovim-a26c114577b2cbd91d2fa055cf37eea10579e6a3.zip
vim-patch:f351fd829204 (#28551)
runtime(ssa): improve syntax file performance (vim/vim#14654) fixes: vim/vim#14653 fixes: neovim/neovim#25950 https://github.com/vim/vim/commit/f351fd82920427b33a160cab9fdbc35ac1deb681
-rw-r--r--runtime/syntax/ssa.vim16
1 files changed, 10 insertions, 6 deletions
diff --git a/runtime/syntax/ssa.vim b/runtime/syntax/ssa.vim
index a5dbf37c30..3cfae816ff 100644
--- a/runtime/syntax/ssa.vim
+++ b/runtime/syntax/ssa.vim
@@ -2,7 +2,7 @@
" Language: SubStation Alpha
" Maintainer: ObserverOfTime <chronobserver@disroot.org>
" Filenames: *.ass,*.ssa
-" Last Change: 2022 Oct 10
+" Last Change: 2024 Apr 28
if exists('b:current_syntax')
finish
@@ -20,16 +20,20 @@ syn match ssaSection /^\[[a-zA-Z0-9+ ]\+\]$/
syn match ssaHeader /^[^;!:]\+:/ skipwhite nextgroup=ssaField
" Fields
-syn match ssaField /[^,]*/ contained skipwhite nextgroup=ssaDelimiter
+syn match ssaField /[^,]*\(,\|$\)/ contained skipwhite contains=ssaDelimiter,ssaTime nextgroup=ssaField
" Time
-syn match ssaTime /\d:\d\d:\d\d\.\d\d/ contained skipwhite nextgroup=ssaDelimiter
+syn match ssaTime /\d:\d\d:\d\d\.\d\d/ contained
" Delimiter
-syn match ssaDelimiter /,/ contained skipwhite nextgroup=ssaField,ssaTime,ssaText
+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 /\(^Dialogue:\(.*,\)\{9}\)\@<=.*$/ contained contains=@ssaTags,@Spell
+syn match ssaText /.*$/ contained contains=@ssaTags,@Spell
syn cluster ssaTags contains=ssaOverrideTag,ssaEscapeChar,ssaTextComment,ssaItalics,ssaBold,ssaUnderline,ssaStrikeout
" Override tags
@@ -60,4 +64,4 @@ hi ssaItalics cterm=italic gui=italic
hi ssaStrikeout cterm=strikethrough gui=strikethrough
hi ssaUnderline cterm=underline gui=underline
-let b:current_syntax = 'srt'
+let b:current_syntax = 'ssa'