" Vim syntax file " Language: FORM " Version: 2.0 " Maintainer: Michael M. Tung " Last Change: " Past Change: " Past Change: " First public release based on 'Symbolic Manipulation with FORM' " by J.A.M. Vermaseren, CAN, Netherlands, 1991. " This syntax file is still in development. Please send suggestions " to the maintainer. " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case ignore " a bunch of useful FORM keywords syn keyword formType global local syn keyword formHeaderStatement symbol symbols cfunction cfunctions syn keyword formHeaderStatement function functions vector vectors syn keyword formHeaderStatement tensor tensors ctensor ctensors syn keyword formHeaderStatement set sets index indices table ctable syn keyword formHeaderStatement dimension dimensions unittrace syn keyword formConditional if else elseif endif while syn keyword formConditional repeat endrepeat label goto syn keyword formConditional argument endargument exit syn keyword formConditional inexpression inside term syn keyword formConditional endinexpression endinside endterm syn keyword formStatement abrackets also antibrackets antisymmetrize syn keyword formStatement argexplode argimplode apply auto autodeclare syn keyword formStatement brackets chainin chainout chisholm cleartable syn keyword formStatement collect commuting compress contract syn keyword formStatement cyclesymmetrize deallocatetable delete syn keyword formStatement dimension discard disorder drop factarg fill syn keyword formStatement fillexpression fixindex format funpowers hide syn keyword formStatement identify idnew idold ifmatch inparallel syn keyword formStatement insidefirst keep load makeinteger many metric syn keyword formStatement moduleoption modulus multi multiply ndrop syn keyword formStatement nfunctions nhide normalize notinparallel syn keyword formStatement nprint nskip ntable ntensors nunhide nwrite syn keyword formStatement off on once only polyfun pophide print syn keyword formStatement printtable propercount pushhide ratio syn keyword formStatement rcyclesymmetrize redefine renumber syn keyword formStatement replaceinarg replaceloop save select syn keyword formStatement setexitflag skip slavepatchsize sort splitarg syn keyword formStatement splitfirstarg splitlastarg sum symmetrize syn keyword formStatement tablebase testuse threadbucketsize totensor syn keyword formStatement tovector trace4 tracen tryreplace unhide syn keyword formStatement unittrace vectors write " for compatibility with older FORM versions: syn keyword formStatement id bracket count match traceN " some special functions syn keyword formStatement abs_ bernoulli_ binom_ conjg_ count_ syn keyword formStatement d_ dd_ delta_ deltap_ denom_ distrib_ syn keyword formStatement dum_ dummy_ dummyten_ e_ exp_ fac_ syn keyword formStatement factorin_ firstbracket_ g5_ g6_ g7_ syn keyword formStatement g_ gcd_ gi_ integer_ invfac_ match_ syn keyword formStatement max_ maxpowerof_ min_ minpowerof_ syn keyword formStatement mod_ nargs_ nterms_ pattern_ poly_ syn keyword formStatement polyadd_ polydiv_ polygcd_ polyintfac_ syn keyword formStatement polymul_ polynorm_ polyrem_ polysub_ syn keyword formStatement replace_ reverse_ root_ setfun_ sig_ syn keyword formStatement sign_ sum_ sump_ table_ tbl_ term_ syn keyword formStatement termsin_ termsinbracket_ theta_ thetap_ syn keyword formStatement 5_ 6_ 7_ syn keyword formReserved sqrt_ ln_ sin_ cos_ tan_ asin_ acos_ syn keyword formReserved atan_ atan2_ sinh_ cosh_ tanh_ asinh_ syn keyword formReserved acosh_ atanh_ li2_ lin_ syn keyword formTodo contained TODO FIXME XXX syn match formSpecial display contained "\\\(n\|t\|b\|\\\|\"\)" syn match formSpecial display contained "%\(%\|e\|E\|s\|f\|\$\)" syn match formSpecial "\" syn match formNumber "\<\d\+\>" syn match formNumber "\<\d\+\.\d*\>" syn match formNumber "\.\d\+\>" syn match formNumber "-\d" contains=Number syn match formNumber "-\.\d" contains=Number syn match formNumber "i_\+\>" syn match formNumber "fac_\+\>" " pattern matching wildcards syn match formNumber "?[A-z0-9]*" " dollar-variables (new in 3.x) syn match formNumber "\\$[A-z0-9]*" " scalar products syn match formNumber "^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>" syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>" " hi User Labels syn sync ccomment formComment minlines=10 " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_form_syn_inits") if version < 508 let did_form_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink formConditional Conditional HiLink formNumber Number HiLink formStatement Statement HiLink formComment Comment HiLink formPreProc PreProc HiLink formDirective PreProc HiLink formType Type HiLink formString String HiLink formNestedString String HiLink formReserved Error HiLink formTodo Todo HiLink formSpecial SpecialChar if !exists("form_enhanced_color") HiLink formHeaderStatement Statement else " enhanced color mode HiLink formHeaderStatement HeaderStatement " dark and a light background for local types if &background == "dark" hi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold else hi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold endif " change slightly the default for dark gvim if has("gui_running") && &background == "dark" hi Conditional guifg=LightBlue gui=bold hi Statement guifg=LightYellow endif endif delcommand HiLink endif let b:current_syntax = "form" " vim: ts=8