neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

form.vim (6385B)


      1 " Vim syntax file
      2 " Language:	FORM
      3 " Version: 2.0
      4 " Maintainer:	Michael M. Tung <michael.tung@uni-mainz.de>
      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>
      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 
     14 " quit when a syntax file was already loaded
     15 if exists("b:current_syntax")
     16  finish
     17 endif
     18 
     19 syn case ignore
     20 
     21 " a bunch of useful FORM keywords
     22 syn keyword formType		global local
     23 syn keyword formHeaderStatement	symbol symbols cfunction cfunctions
     24 syn keyword formHeaderStatement	function functions vector vectors
     25 syn keyword formHeaderStatement tensor tensors ctensor ctensors
     26 syn keyword formHeaderStatement	set sets index indices table ctable
     27 syn keyword formHeaderStatement	dimension dimensions unittrace
     28 syn keyword formConditional	if else elseif endif while
     29 syn keyword formConditional	repeat endrepeat label goto
     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
     56 
     57 " some special functions
     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\+_[?]"
     81 
     82 " pattern matching for keywords
     83 syn match   formComment		"^\ *\*.*$" contains=formTodo
     84 syn match   formComment		"\;\ *\*.*$" contains=formTodo
     85 syn region  formString		start=+"+  end=+"+ contains=formSpecial
     86 syn region  formString		start=+'+  end=+'+
     87 syn region  formNestedString	start=+`+  end=+'+ contains=formNestedString
     88 syn match   formPreProc		"^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
     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_\+\>"
     96 " pattern matching wildcards
     97 syn match   formNumber		"?[a-zA-Z0-9]*"
     98 " dollar-variables (new in 3.x)
     99 syn match   formNumber		"\\$[a-zA-Z0-9]*"
    100 " scalar products
    101 syn match   formNumber		"^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"
    102 
    103 syn match   formDirective	"^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
    104 
    105 " hi User Labels
    106 syn sync ccomment formComment minlines=10
    107 
    108 " Define the default highlighting.
    109 " Only when an item doesn't have highlighting yet
    110 
    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
    123 
    124 if !exists("form_enhanced_color")
    125 hi def link formHeaderStatement	Statement
    126 else
    127 " enhanced color mode
    128 hi def link formHeaderStatement	HeaderStatement
    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
    134 endif
    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 
    142 
    143  let b:current_syntax = "form"
    144 
    145 " vim: ts=8