| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	FORM | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Version: 2.0 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Maintainer:	Michael M. Tung <michael.tung@uni-mainz.de> | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " 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> | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case ignore | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " a bunch of useful FORM keywords | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword formType		global local | 
					
						
							|  |  |  | syn keyword formHeaderStatement	symbol symbols cfunction cfunctions | 
					
						
							|  |  |  | syn keyword formHeaderStatement	function functions vector vectors | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn keyword formHeaderStatement tensor tensors ctensor ctensors | 
					
						
							|  |  |  | syn keyword formHeaderStatement	set sets index indices table ctable | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword formHeaderStatement	dimension dimensions unittrace | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn keyword formConditional	if else elseif endif while | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword formConditional	repeat endrepeat label goto | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " some special functions | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 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\+_[?]" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " pattern matching for keywords | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn match   formComment		"^\ *\*.*$" contains=formTodo | 
					
						
							|  |  |  | syn match   formComment		"\;\ *\*.*$" contains=formTodo | 
					
						
							|  |  |  | syn region  formString		start=+"+  end=+"+ contains=formSpecial | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn region  formString		start=+'+  end=+'+ | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | syn region  formNestedString	start=+`+  end=+'+ contains=formNestedString | 
					
						
							| 
									
										
										
										
											2017-09-19 22:06:03 +02:00
										 |  |  | syn match   formPreProc		"^\=\#[a-zA-Z][a-zA-Z0-9]*\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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_\+\>" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " pattern matching wildcards | 
					
						
							| 
									
										
										
										
											2017-09-19 22:06:03 +02:00
										 |  |  | syn match   formNumber		"?[a-zA-Z0-9]*" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " dollar-variables (new in 3.x) | 
					
						
							| 
									
										
										
										
											2017-09-19 22:06:03 +02:00
										 |  |  | syn match   formNumber		"\\$[a-zA-Z0-9]*" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " scalar products | 
					
						
							| 
									
										
										
										
											2017-09-19 22:06:03 +02:00
										 |  |  | syn match   formNumber		"^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-19 22:06:03 +02:00
										 |  |  | syn match   formDirective	"^\=\.[a-zA-Z][a-zA-Z0-9]*\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " hi User Labels | 
					
						
							|  |  |  | syn sync ccomment formComment minlines=10 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | hi def link formConditional	Conditional | 
					
						
							|  |  |  | hi def link formNumber		Number | 
					
						
							|  |  |  | hi def link formStatement		Statement | 
					
						
							|  |  |  | hi def link formComment		Comment | 
					
						
							|  |  |  | hi def link formPreProc		PreProc | 
					
						
							|  |  |  | hi def link formDirective		PreProc | 
					
						
							|  |  |  | hi def link formType		Type | 
					
						
							|  |  |  | hi def link formString		String | 
					
						
							|  |  |  | hi def link formNestedString	String | 
					
						
							|  |  |  | hi def link formReserved           Error | 
					
						
							|  |  |  | hi def link formTodo               Todo | 
					
						
							|  |  |  | hi def link formSpecial            SpecialChar | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | if !exists("form_enhanced_color") | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link formHeaderStatement	Statement | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | else | 
					
						
							|  |  |  | " enhanced color mode | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link formHeaderStatement	HeaderStatement | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   let b:current_syntax = "form" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |