diff --git a/misc/vim/syntax/factor.vim b/misc/vim/syntax/factor.vim index 5cea099f45..ede8eb2707 100644 --- a/misc/vim/syntax/factor.vim +++ b/misc/vim/syntax/factor.vim @@ -48,8 +48,8 @@ syn keyword factorBoolean f t syn keyword factorBreakpoint B syn keyword factorFrySpecifier @ _ contained syn keyword factorDeclaration delimiter deprecated final flushable foldable inline recursive -syn match factorCallQuotation /\/ -syn match factorExecute /\/ +syn match factorCallQuotation /\/ contained contains=factorStackEffect +syn match factorExecute /\/ contained contains=factorStackEffect syn keyword factorCallNextMethod call-next-method syn keyword factorKeyword or 2bi 2tri while wrapper nip 4dip wrapper? bi* callstack>array both? hashcode die dupd callstack callstack? 3dup tri@ pick curry build ?execute 3bi prepose >boolean ?if clone eq? tri* ? = swapd 2over 2keep 3keep clear 2dup when not tuple? dup 2bi* 2tri* call tri-curry object bi@ do unless* if* loop bi-curry* drop when* assert= retainstack assert? -rot execute 2bi@ 2tri@ boa with either? 3drop bi curry? datastack until 3dip over 3curry tri-curry* tri-curry@ swap and 2nip throw bi-curry (clone) hashcode* compose 2dip if 3tri unless compose? tuple keep 2curry equal? assert tri 2drop most boolean? identity-hashcode identity-tuple? null new dip bi-curry@ rot xor identity-tuple boolean @@ -148,8 +148,11 @@ syn match factorMultiStringContents /.*/ contained "syn match factorStackEffectErr /\<)\>/ "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/ "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained -syn match factorStackEffect /\<(\s\(\S*\s\)\?--\(\s\S*\)\?\s)\>/ contained -syn match factorLiteralStackEffect /\<((\s\(\S*\s\)\?--\(\s\S*\)\?\s))\>/ +syn match factorStackEffect /(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackDelims,factorStackItems,factorCallExecuteDelim +syn match factorLiteralStackEffect /((\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+))\>/ contained contains=factorStackDelims,factorStackItems +syn match factorStackItems contained "\<\S\+\>" +syn keyword factorStackDelims contained ( ) (( )) -- +syn match factorCallExecuteDelim contained /(\s/ "adapted from lisp.vim if exists("g:factor_norainbow") @@ -199,6 +202,9 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorShebang PreProc HiLink factorShebangErr Error HiLink factorStackEffect Typedef + HiLink factorStackDelims Delimiter + HiLink factorCallExecuteDelim Delimiter + HiLink factorStackItems Identifier HiLink factorLiteralStackEffect Typedef HiLink factorTodo Todo HiLink factorInclude Include