| " Vim syntax file |
| " Language: FORM |
| " Version: 2.0 |
| " Maintainer: Michael M. Tung <michael.tung@uni-mainz.de> |
| " Last Change: <Thu Oct 23 13:11:21 CEST 2008> |
| " Past Change: <October 2008 Thomas Reiter thomasr@nikhef.nl> |
| " Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44> |
| |
| " 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 "\<N\d\+_[?]" |
| |
| " pattern matching for keywords |
| syn match formComment "^\ *\*.*$" contains=formTodo |
| syn match formComment "\;\ *\*.*$" contains=formTodo |
| syn region formString start=+"+ end=+"+ contains=formSpecial |
| syn region formString start=+'+ end=+'+ |
| syn region formNestedString start=+`+ end=+'+ contains=formNestedString |
| syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>" |
| 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 <args> |
| else |
| command -nargs=+ HiLink hi def link <args> |
| 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 |