form.vim 6.2 KB

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