diff --git a/misc/factor.vim.fgen b/misc/factor.vim.fgen index c000145506..0a27578a31 100644 --- a/misc/factor.vim.fgen +++ b/misc/factor.vim.fgen @@ -10,10 +10,10 @@ IN: factor.vim.fgen %> " Vim syntax file -" Language: factor +" Language: Factor " Maintainer: Alex Chapman -" Last Change: 2009 May 19 -" To run: USE: html.templates.fhtml "resource:misc/factor.vim.fgen" call-template +" Last Change: 2011 Mar 15 +" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" call-template " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -33,7 +33,7 @@ else set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 endif -syn cluster factorCluster contains=factorComment,factorFryDirective,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorTuple,factorStruct +syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorStruct syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained syn match factorComment /\<#!\>\s.*/ contains=factorTodo @@ -55,8 +55,12 @@ syn region None matchgroup=factorPrivate start=/\</ end=/\\>/ syn keyword factorBoolean f t -syn match factorFryDirective /\<\(@\|_\)\>/ contained -syn keyword factorCompileDirective inline foldable recursive +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 keyword factorCallNextMethod call-next-method <% @@ -101,16 +105,20 @@ syn region factorLiteralBlock start=/\<\$\[\>/ end=/\<\]\>/ syn region factorUsing start=/\/ end=/;/ syn match factorQualified /\/ syn match factorQualifiedWith /\/ +syn region factorExclude start=/\/ end=/;/ syn region factorFrom start=/\/ end=/;/ +syn region factorRename start=/\/ end=/;/ syn region factorSingletons start=/\/ end=/;/ syn match factorSymbol /\/ syn region factorSymbols start=/\/ end=/;/ syn region factorConstructor2 start=/\/ end=/\<;\>/ syn region factorTuple start=/\/ end=/\<;\>/ +syn region factorUnion start=/\/ end=/\<;\>/ syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/ syn match factorConstant /\/ -syn match factorAlias /\/ +syn match factorAlias /\/ syn match factorSingleton /\/ syn match factorPostpone /\/ syn match factorDefer /\/ @@ -121,6 +129,7 @@ syn match factorHook /\/ syn match factorMain /\/ syn match factorConstructor /\/ syn match factorAlien /\/ +syn match factorSlot /\/ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor @@ -140,7 +149,7 @@ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingle syn region factorString start=/\<"/ skip=/\\"/ end=/"/ syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ -syn region factorSbuf start=/\/ skip=/\\"/ end=/"/ +syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/ syn region factorMultiString matchgroup=factorMultiStringDelims start=/\/ end=/^;$/ contains=factorMultiStringContents syn match factorMultiStringContents /.*/ contained @@ -148,8 +157,8 @@ syn match factorMultiStringContents /.*/ contained "syn match factorStackEffectErr /\<)\>/ "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/ "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained -syn match factorStackEffect /\<( .*--.* )\>/ contained -syn match factorLiteralStackEffect /\<(( .*--.* ))\>/ +syn match factorStackEffect /\<(\s.*\s--\s.*\s)\>/ contained +syn match factorLiteralStackEffect /\<((\s.*\s--\s.*\s))\>/ "adapted from lisp.vim if exists("g:factor_norainbow") @@ -203,9 +212,13 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorRepeat Repeat HiLink factorConditional Conditional HiLink factorKeyword Keyword + HiLink factorCallQuotation Keyword + HiLink factorExecute Keyword + HiLink factorCallNextMethod Keyword HiLink factorOperator Operator - HiLink factorFryDirective Operator + HiLink factorFrySpecifier Operator HiLink factorBoolean Boolean + HiLink factorBreakpoint Debug HiLink factorDefnDelims Typedef HiLink factorMethodDelims Typedef HiLink factorGenericDelims Typedef @@ -237,7 +250,9 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorUsing Include HiLink factorQualified Include HiLink factorQualifiedWith Include + HiLink factorExclude Include HiLink factorFrom Include + HiLink factorRename Include HiLink factorUse Include HiLink factorUnuse Include HiLink factorIn Define @@ -246,9 +261,11 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorBackslash Special HiLink factorLiteral Special HiLink factorLiteralBlock Special - HiLink factorCompileDirective Typedef + HiLink factorDeclaration Typedef HiLink factorSymbol Define + HiLink factorSymbols Define HiLink factorConstant Define + HiLink factorAlias Define HiLink factorSingleton Define HiLink factorSingletons Define HiLink factorMixin Typedef @@ -259,7 +276,10 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorDefer Define HiLink factorForget Define HiLink factorAlien Define + HiLink factorSlot Define + HiLink factorIntersection Typedef HiLink factorTuple Typedef + HiLink factorUnion Typedef HiLink factorStruct Typedef if &bg == "dark" diff --git a/misc/vim/syntax/factor.vim b/misc/vim/syntax/factor.vim index ec17dec330..cad221c690 100644 --- a/misc/vim/syntax/factor.vim +++ b/misc/vim/syntax/factor.vim @@ -1,9 +1,8 @@ - " Vim syntax file -" Language: factor +" Language: Factor " Maintainer: Alex Chapman -" Last Change: 2009 May 19 -" To run: USE: html.templates.fhtml "resource:misc/factor.vim.fgen" call-template +" Last Change: 2011 Mar 15 +" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" call-template " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -23,7 +22,7 @@ else set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 endif -syn cluster factorCluster contains=factorComment,factorFryDirective,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorTuple,factorStruct +syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorStruct syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained syn match factorComment /\<#!\>\s.*/ contains=factorTodo @@ -45,8 +44,12 @@ syn region None matchgroup=factorPrivate start=/\</ end=/\\>/ syn keyword factorBoolean f t -syn match factorFryDirective /\<\(@\|_\)\>/ contained -syn keyword factorCompileDirective inline foldable recursive +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 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 syn keyword factorKeyword ?at assoc? assoc-clone-like assoc= delete-at* assoc-partition extract-keys new-assoc value? assoc-size map>assoc push-at assoc-like key? assoc-intersect assoc-refine update assoc-union assoc-combine at* assoc-empty? at+ set-at assoc-all? assoc-subset? assoc-hashcode change-at assoc-each assoc-diff zip values value-at rename-at inc-at enum? at cache assoc>map assoc assoc-map enum value-at* assoc-map-as >alist assoc-filter-as clear-assoc assoc-stack maybe-set-at substitute assoc-filter 2cache delete-at assoc-find keys assoc-any? unzip @@ -89,16 +92,20 @@ syn region factorLiteralBlock start=/\<\$\[\>/ end=/\<\]\>/ syn region factorUsing start=/\/ end=/;/ syn match factorQualified /\/ syn match factorQualifiedWith /\/ +syn region factorExclude start=/\/ end=/;/ syn region factorFrom start=/\/ end=/;/ +syn region factorRename start=/\/ end=/;/ syn region factorSingletons start=/\/ end=/;/ syn match factorSymbol /\/ syn region factorSymbols start=/\/ end=/;/ syn region factorConstructor2 start=/\/ end=/\<;\>/ syn region factorTuple start=/\/ end=/\<;\>/ +syn region factorUnion start=/\/ end=/\<;\>/ syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/ syn match factorConstant /\/ -syn match factorAlias /\/ +syn match factorAlias /\/ syn match factorSingleton /\/ syn match factorPostpone /\/ syn match factorDefer /\/ @@ -109,6 +116,7 @@ syn match factorHook /\/ syn match factorMain /\/ syn match factorConstructor /\/ syn match factorAlien /\/ +syn match factorSlot /\/ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor @@ -136,8 +144,8 @@ syn match factorMultiStringContents /.*/ contained "syn match factorStackEffectErr /\<)\>/ "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/ "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained -syn match factorStackEffect /\<( .*--.* )\>/ contained -syn match factorLiteralStackEffect /\<(( .*--.* ))\>/ +syn match factorStackEffect /\<(\s.*\s--\s.*\s)\>/ contained +syn match factorLiteralStackEffect /\<((\s.*\s--\s.*\s))\>/ "adapted from lisp.vim if exists("g:factor_norainbow") @@ -191,9 +199,13 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorRepeat Repeat HiLink factorConditional Conditional HiLink factorKeyword Keyword + HiLink factorCallQuotation Keyword + HiLink factorExecute Keyword + HiLink factorCallNextMethod Keyword HiLink factorOperator Operator - HiLink factorFryDirective Operator + HiLink factorFrySpecifier Operator HiLink factorBoolean Boolean + HiLink factorBreakpoint Debug HiLink factorDefnDelims Typedef HiLink factorMethodDelims Typedef HiLink factorGenericDelims Typedef @@ -225,7 +237,9 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorUsing Include HiLink factorQualified Include HiLink factorQualifiedWith Include + HiLink factorExclude Include HiLink factorFrom Include + HiLink factorRename Include HiLink factorUse Include HiLink factorUnuse Include HiLink factorIn Define @@ -234,9 +248,11 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorBackslash Special HiLink factorLiteral Special HiLink factorLiteralBlock Special - HiLink factorCompileDirective Typedef + HiLink factorDeclaration Typedef HiLink factorSymbol Define + HiLink factorSymbols Define HiLink factorConstant Define + HiLink factorAlias Define HiLink factorSingleton Define HiLink factorSingletons Define HiLink factorMixin Typedef @@ -247,7 +263,10 @@ if version >= 508 || !exists("did_factor_syn_inits") HiLink factorDefer Define HiLink factorForget Define HiLink factorAlien Define + HiLink factorSlot Define + HiLink factorIntersection Typedef HiLink factorTuple Typedef + HiLink factorUnion Typedef HiLink factorStruct Typedef if &bg == "dark"