Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: FORM |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 3 | " Version: 2.0 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 4 | " Maintainer: Michael M. Tung <michael.tung@uni-mainz.de> |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 5 | " Last Change: <Thu Oct 23 13:11:21 CEST 2008> |
| 6 | " Past Change: <October 2008 Thomas Reiter thomasr@nikhef.nl> |
| 7 | " Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44> |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 8 | |
| 9 | " First public release based on 'Symbolic Manipulation with FORM' |
| 10 | " by J.A.M. Vermaseren, CAN, Netherlands, 1991. |
| 11 | " This syntax file is still in development. Please send suggestions |
| 12 | " to the maintainer. |
| 13 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 14 | " quit when a syntax file was already loaded |
| 15 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 16 | finish |
| 17 | endif |
| 18 | |
| 19 | syn case ignore |
| 20 | |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 21 | " a bunch of useful FORM keywords |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 22 | syn keyword formType global local |
| 23 | syn keyword formHeaderStatement symbol symbols cfunction cfunctions |
| 24 | syn keyword formHeaderStatement function functions vector vectors |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 25 | syn keyword formHeaderStatement tensor tensors ctensor ctensors |
| 26 | syn keyword formHeaderStatement set sets index indices table ctable |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 27 | syn keyword formHeaderStatement dimension dimensions unittrace |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 28 | syn keyword formConditional if else elseif endif while |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 29 | syn keyword formConditional repeat endrepeat label goto |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 30 | syn keyword formConditional argument endargument exit |
| 31 | syn keyword formConditional inexpression inside term |
| 32 | syn keyword formConditional endinexpression endinside endterm |
| 33 | syn keyword formStatement abrackets also antibrackets antisymmetrize |
| 34 | syn keyword formStatement argexplode argimplode apply auto autodeclare |
| 35 | syn keyword formStatement brackets chainin chainout chisholm cleartable |
| 36 | syn keyword formStatement collect commuting compress contract |
| 37 | syn keyword formStatement cyclesymmetrize deallocatetable delete |
| 38 | syn keyword formStatement dimension discard disorder drop factarg fill |
| 39 | syn keyword formStatement fillexpression fixindex format funpowers hide |
| 40 | syn keyword formStatement identify idnew idold ifmatch inparallel |
| 41 | syn keyword formStatement insidefirst keep load makeinteger many metric |
| 42 | syn keyword formStatement moduleoption modulus multi multiply ndrop |
| 43 | syn keyword formStatement nfunctions nhide normalize notinparallel |
| 44 | syn keyword formStatement nprint nskip ntable ntensors nunhide nwrite |
| 45 | syn keyword formStatement off on once only polyfun pophide print |
| 46 | syn keyword formStatement printtable propercount pushhide ratio |
| 47 | syn keyword formStatement rcyclesymmetrize redefine renumber |
| 48 | syn keyword formStatement replaceinarg replaceloop save select |
| 49 | syn keyword formStatement setexitflag skip slavepatchsize sort splitarg |
| 50 | syn keyword formStatement splitfirstarg splitlastarg sum symmetrize |
| 51 | syn keyword formStatement tablebase testuse threadbucketsize totensor |
| 52 | syn keyword formStatement tovector trace4 tracen tryreplace unhide |
| 53 | syn keyword formStatement unittrace vectors write |
| 54 | " for compatibility with older FORM versions: |
| 55 | syn keyword formStatement id bracket count match traceN |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 56 | |
| 57 | " some special functions |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 58 | syn keyword formStatement abs_ bernoulli_ binom_ conjg_ count_ |
| 59 | syn keyword formStatement d_ dd_ delta_ deltap_ denom_ distrib_ |
| 60 | syn keyword formStatement dum_ dummy_ dummyten_ e_ exp_ fac_ |
| 61 | syn keyword formStatement factorin_ firstbracket_ g5_ g6_ g7_ |
| 62 | syn keyword formStatement g_ gcd_ gi_ integer_ invfac_ match_ |
| 63 | syn keyword formStatement max_ maxpowerof_ min_ minpowerof_ |
| 64 | syn keyword formStatement mod_ nargs_ nterms_ pattern_ poly_ |
| 65 | syn keyword formStatement polyadd_ polydiv_ polygcd_ polyintfac_ |
| 66 | syn keyword formStatement polymul_ polynorm_ polyrem_ polysub_ |
| 67 | syn keyword formStatement replace_ reverse_ root_ setfun_ sig_ |
| 68 | syn keyword formStatement sign_ sum_ sump_ table_ tbl_ term_ |
| 69 | syn keyword formStatement termsin_ termsinbracket_ theta_ thetap_ |
| 70 | syn keyword formStatement 5_ 6_ 7_ |
| 71 | |
| 72 | syn keyword formReserved sqrt_ ln_ sin_ cos_ tan_ asin_ acos_ |
| 73 | syn keyword formReserved atan_ atan2_ sinh_ cosh_ tanh_ asinh_ |
| 74 | syn keyword formReserved acosh_ atanh_ li2_ lin_ |
| 75 | |
| 76 | syn keyword formTodo contained TODO FIXME XXX |
| 77 | |
| 78 | syn match formSpecial display contained "\\\(n\|t\|b\|\\\|\"\)" |
| 79 | syn match formSpecial display contained "%\(%\|e\|E\|s\|f\|\$\)" |
| 80 | syn match formSpecial "\<N\d\+_[?]" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 81 | |
| 82 | " pattern matching for keywords |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 83 | syn match formComment "^\ *\*.*$" contains=formTodo |
| 84 | syn match formComment "\;\ *\*.*$" contains=formTodo |
| 85 | syn region formString start=+"+ end=+"+ contains=formSpecial |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 86 | syn region formString start=+'+ end=+'+ |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 87 | syn region formNestedString start=+`+ end=+'+ contains=formNestedString |
Bram Moolenaar | 37c64c7 | 2017-09-19 22:06:03 +0200 | [diff] [blame] | 88 | syn match formPreProc "^\=\#[a-zA-Z][a-zA-Z0-9]*\>" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 89 | syn match formNumber "\<\d\+\>" |
| 90 | syn match formNumber "\<\d\+\.\d*\>" |
| 91 | syn match formNumber "\.\d\+\>" |
| 92 | syn match formNumber "-\d" contains=Number |
| 93 | syn match formNumber "-\.\d" contains=Number |
| 94 | syn match formNumber "i_\+\>" |
| 95 | syn match formNumber "fac_\+\>" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 96 | " pattern matching wildcards |
Bram Moolenaar | 37c64c7 | 2017-09-19 22:06:03 +0200 | [diff] [blame] | 97 | syn match formNumber "?[a-zA-Z0-9]*" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 98 | " dollar-variables (new in 3.x) |
Bram Moolenaar | 37c64c7 | 2017-09-19 22:06:03 +0200 | [diff] [blame] | 99 | syn match formNumber "\\$[a-zA-Z0-9]*" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 100 | " scalar products |
Bram Moolenaar | 37c64c7 | 2017-09-19 22:06:03 +0200 | [diff] [blame] | 101 | syn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>" |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 102 | |
Bram Moolenaar | 37c64c7 | 2017-09-19 22:06:03 +0200 | [diff] [blame] | 103 | syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 104 | |
| 105 | " hi User Labels |
| 106 | syn sync ccomment formComment minlines=10 |
| 107 | |
| 108 | " Define the default highlighting. |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 109 | " Only when an item doesn't have highlighting yet |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 110 | |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 111 | hi def link formConditional Conditional |
| 112 | hi def link formNumber Number |
| 113 | hi def link formStatement Statement |
| 114 | hi def link formComment Comment |
| 115 | hi def link formPreProc PreProc |
| 116 | hi def link formDirective PreProc |
| 117 | hi def link formType Type |
| 118 | hi def link formString String |
| 119 | hi def link formNestedString String |
| 120 | hi def link formReserved Error |
| 121 | hi def link formTodo Todo |
| 122 | hi def link formSpecial SpecialChar |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 123 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 124 | if !exists("form_enhanced_color") |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 125 | hi def link formHeaderStatement Statement |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 126 | else |
| 127 | " enhanced color mode |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 128 | hi def link formHeaderStatement HeaderStatement |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 129 | " dark and a light background for local types |
| 130 | if &background == "dark" |
| 131 | hi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold |
| 132 | else |
| 133 | hi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 134 | endif |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 135 | " change slightly the default for dark gvim |
| 136 | if has("gui_running") && &background == "dark" |
| 137 | hi Conditional guifg=LightBlue gui=bold |
| 138 | hi Statement guifg=LightYellow |
| 139 | endif |
| 140 | endif |
| 141 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 142 | |
| 143 | let b:current_syntax = "form" |
| 144 | |
| 145 | " vim: ts=8 |