1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: FORM 35c73622aSBram Moolenaar" Version: 2.0 4071d4279SBram Moolenaar" Maintainer: Michael M. Tung <[email protected]> 55c73622aSBram Moolenaar" Last Change: <Thu Oct 23 13:11:21 CEST 2008> 65c73622aSBram Moolenaar" Past Change: <October 2008 Thomas Reiter [email protected]> 75c73622aSBram Moolenaar" Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44> 8071d4279SBram Moolenaar 9071d4279SBram Moolenaar" First public release based on 'Symbolic Manipulation with FORM' 10071d4279SBram Moolenaar" by J.A.M. Vermaseren, CAN, Netherlands, 1991. 11071d4279SBram Moolenaar" This syntax file is still in development. Please send suggestions 12071d4279SBram Moolenaar" to the maintainer. 13071d4279SBram Moolenaar 1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1589bcfda6SBram Moolenaarif exists("b:current_syntax") 16071d4279SBram Moolenaar finish 17071d4279SBram Moolenaarendif 18071d4279SBram Moolenaar 19071d4279SBram Moolenaarsyn case ignore 20071d4279SBram Moolenaar 215c73622aSBram Moolenaar" a bunch of useful FORM keywords 22071d4279SBram Moolenaarsyn keyword formType global local 23071d4279SBram Moolenaarsyn keyword formHeaderStatement symbol symbols cfunction cfunctions 24071d4279SBram Moolenaarsyn keyword formHeaderStatement function functions vector vectors 255c73622aSBram Moolenaarsyn keyword formHeaderStatement tensor tensors ctensor ctensors 265c73622aSBram Moolenaarsyn keyword formHeaderStatement set sets index indices table ctable 27071d4279SBram Moolenaarsyn keyword formHeaderStatement dimension dimensions unittrace 285c73622aSBram Moolenaarsyn keyword formConditional if else elseif endif while 29071d4279SBram Moolenaarsyn keyword formConditional repeat endrepeat label goto 305c73622aSBram Moolenaarsyn keyword formConditional argument endargument exit 315c73622aSBram Moolenaarsyn keyword formConditional inexpression inside term 325c73622aSBram Moolenaarsyn keyword formConditional endinexpression endinside endterm 335c73622aSBram Moolenaarsyn keyword formStatement abrackets also antibrackets antisymmetrize 345c73622aSBram Moolenaarsyn keyword formStatement argexplode argimplode apply auto autodeclare 355c73622aSBram Moolenaarsyn keyword formStatement brackets chainin chainout chisholm cleartable 365c73622aSBram Moolenaarsyn keyword formStatement collect commuting compress contract 375c73622aSBram Moolenaarsyn keyword formStatement cyclesymmetrize deallocatetable delete 385c73622aSBram Moolenaarsyn keyword formStatement dimension discard disorder drop factarg fill 395c73622aSBram Moolenaarsyn keyword formStatement fillexpression fixindex format funpowers hide 405c73622aSBram Moolenaarsyn keyword formStatement identify idnew idold ifmatch inparallel 415c73622aSBram Moolenaarsyn keyword formStatement insidefirst keep load makeinteger many metric 425c73622aSBram Moolenaarsyn keyword formStatement moduleoption modulus multi multiply ndrop 435c73622aSBram Moolenaarsyn keyword formStatement nfunctions nhide normalize notinparallel 445c73622aSBram Moolenaarsyn keyword formStatement nprint nskip ntable ntensors nunhide nwrite 455c73622aSBram Moolenaarsyn keyword formStatement off on once only polyfun pophide print 465c73622aSBram Moolenaarsyn keyword formStatement printtable propercount pushhide ratio 475c73622aSBram Moolenaarsyn keyword formStatement rcyclesymmetrize redefine renumber 485c73622aSBram Moolenaarsyn keyword formStatement replaceinarg replaceloop save select 495c73622aSBram Moolenaarsyn keyword formStatement setexitflag skip slavepatchsize sort splitarg 505c73622aSBram Moolenaarsyn keyword formStatement splitfirstarg splitlastarg sum symmetrize 515c73622aSBram Moolenaarsyn keyword formStatement tablebase testuse threadbucketsize totensor 525c73622aSBram Moolenaarsyn keyword formStatement tovector trace4 tracen tryreplace unhide 535c73622aSBram Moolenaarsyn keyword formStatement unittrace vectors write 545c73622aSBram Moolenaar" for compatibility with older FORM versions: 555c73622aSBram Moolenaarsyn keyword formStatement id bracket count match traceN 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar" some special functions 585c73622aSBram Moolenaarsyn keyword formStatement abs_ bernoulli_ binom_ conjg_ count_ 595c73622aSBram Moolenaarsyn keyword formStatement d_ dd_ delta_ deltap_ denom_ distrib_ 605c73622aSBram Moolenaarsyn keyword formStatement dum_ dummy_ dummyten_ e_ exp_ fac_ 615c73622aSBram Moolenaarsyn keyword formStatement factorin_ firstbracket_ g5_ g6_ g7_ 625c73622aSBram Moolenaarsyn keyword formStatement g_ gcd_ gi_ integer_ invfac_ match_ 635c73622aSBram Moolenaarsyn keyword formStatement max_ maxpowerof_ min_ minpowerof_ 645c73622aSBram Moolenaarsyn keyword formStatement mod_ nargs_ nterms_ pattern_ poly_ 655c73622aSBram Moolenaarsyn keyword formStatement polyadd_ polydiv_ polygcd_ polyintfac_ 665c73622aSBram Moolenaarsyn keyword formStatement polymul_ polynorm_ polyrem_ polysub_ 675c73622aSBram Moolenaarsyn keyword formStatement replace_ reverse_ root_ setfun_ sig_ 685c73622aSBram Moolenaarsyn keyword formStatement sign_ sum_ sump_ table_ tbl_ term_ 695c73622aSBram Moolenaarsyn keyword formStatement termsin_ termsinbracket_ theta_ thetap_ 705c73622aSBram Moolenaarsyn keyword formStatement 5_ 6_ 7_ 715c73622aSBram Moolenaar 725c73622aSBram Moolenaarsyn keyword formReserved sqrt_ ln_ sin_ cos_ tan_ asin_ acos_ 735c73622aSBram Moolenaarsyn keyword formReserved atan_ atan2_ sinh_ cosh_ tanh_ asinh_ 745c73622aSBram Moolenaarsyn keyword formReserved acosh_ atanh_ li2_ lin_ 755c73622aSBram Moolenaar 765c73622aSBram Moolenaarsyn keyword formTodo contained TODO FIXME XXX 775c73622aSBram Moolenaar 785c73622aSBram Moolenaarsyn match formSpecial display contained "\\\(n\|t\|b\|\\\|\"\)" 795c73622aSBram Moolenaarsyn match formSpecial display contained "%\(%\|e\|E\|s\|f\|\$\)" 805c73622aSBram Moolenaarsyn match formSpecial "\<N\d\+_[?]" 81071d4279SBram Moolenaar 82071d4279SBram Moolenaar" pattern matching for keywords 835c73622aSBram Moolenaarsyn match formComment "^\ *\*.*$" contains=formTodo 845c73622aSBram Moolenaarsyn match formComment "\;\ *\*.*$" contains=formTodo 855c73622aSBram Moolenaarsyn region formString start=+"+ end=+"+ contains=formSpecial 86071d4279SBram Moolenaarsyn region formString start=+'+ end=+'+ 875c73622aSBram Moolenaarsyn region formNestedString start=+`+ end=+'+ contains=formNestedString 88*37c64c78SBram Moolenaarsyn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>" 89071d4279SBram Moolenaarsyn match formNumber "\<\d\+\>" 90071d4279SBram Moolenaarsyn match formNumber "\<\d\+\.\d*\>" 91071d4279SBram Moolenaarsyn match formNumber "\.\d\+\>" 92071d4279SBram Moolenaarsyn match formNumber "-\d" contains=Number 93071d4279SBram Moolenaarsyn match formNumber "-\.\d" contains=Number 94071d4279SBram Moolenaarsyn match formNumber "i_\+\>" 95071d4279SBram Moolenaarsyn match formNumber "fac_\+\>" 965c73622aSBram Moolenaar" pattern matching wildcards 97*37c64c78SBram Moolenaarsyn match formNumber "?[a-zA-Z0-9]*" 985c73622aSBram Moolenaar" dollar-variables (new in 3.x) 99*37c64c78SBram Moolenaarsyn match formNumber "\\$[a-zA-Z0-9]*" 1005c73622aSBram Moolenaar" scalar products 101*37c64c78SBram Moolenaarsyn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>" 1025c73622aSBram Moolenaar 103*37c64c78SBram Moolenaarsyn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>" 104071d4279SBram Moolenaar 105071d4279SBram Moolenaar" hi User Labels 106071d4279SBram Moolenaarsyn sync ccomment formComment minlines=10 107071d4279SBram Moolenaar 108071d4279SBram Moolenaar" Define the default highlighting. 10989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 110071d4279SBram Moolenaar 111f37506f6SBram Moolenaarhi def link formConditional Conditional 112f37506f6SBram Moolenaarhi def link formNumber Number 113f37506f6SBram Moolenaarhi def link formStatement Statement 114f37506f6SBram Moolenaarhi def link formComment Comment 115f37506f6SBram Moolenaarhi def link formPreProc PreProc 116f37506f6SBram Moolenaarhi def link formDirective PreProc 117f37506f6SBram Moolenaarhi def link formType Type 118f37506f6SBram Moolenaarhi def link formString String 119f37506f6SBram Moolenaarhi def link formNestedString String 120f37506f6SBram Moolenaarhi def link formReserved Error 121f37506f6SBram Moolenaarhi def link formTodo Todo 122f37506f6SBram Moolenaarhi def link formSpecial SpecialChar 123071d4279SBram Moolenaar 124071d4279SBram Moolenaarif !exists("form_enhanced_color") 125f37506f6SBram Moolenaarhi def link formHeaderStatement Statement 126071d4279SBram Moolenaarelse 127071d4279SBram Moolenaar" enhanced color mode 128f37506f6SBram Moolenaarhi def link formHeaderStatement HeaderStatement 129071d4279SBram Moolenaar" dark and a light background for local types 130071d4279SBram Moolenaarif &background == "dark" 131071d4279SBram Moolenaarhi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold 132071d4279SBram Moolenaarelse 133071d4279SBram Moolenaarhi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold 134071d4279SBram Moolenaarendif 135071d4279SBram Moolenaar" change slightly the default for dark gvim 136071d4279SBram Moolenaarif has("gui_running") && &background == "dark" 137071d4279SBram Moolenaarhi Conditional guifg=LightBlue gui=bold 138071d4279SBram Moolenaarhi Statement guifg=LightYellow 139071d4279SBram Moolenaarendif 140071d4279SBram Moolenaarendif 141071d4279SBram Moolenaar 142071d4279SBram Moolenaar 143071d4279SBram Moolenaar let b:current_syntax = "form" 144071d4279SBram Moolenaar 145071d4279SBram Moolenaar" vim: ts=8 146