1" Vim syntax file 2" Language: FORM 3" Maintainer: Michael M. Tung <[email protected]> 4" Last Change: 2001 May 10 5 6" First public release based on 'Symbolic Manipulation with FORM' 7" by J.A.M. Vermaseren, CAN, Netherlands, 1991. 8" This syntax file is still in development. Please send suggestions 9" to the maintainer. 10 11" For version 5.x: Clear all syntax items 12" For version 6.x: Quit when a syntax file was already loaded 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19syn case ignore 20 21" A bunch of useful FORM keywords 22syn keyword formType global local 23syn keyword formHeaderStatement symbol symbols cfunction cfunctions 24syn keyword formHeaderStatement function functions vector vectors 25syn keyword formHeaderStatement set sets index indices 26syn keyword formHeaderStatement dimension dimensions unittrace 27syn keyword formStatement id identify drop skip 28syn keyword formStatement write nwrite 29syn keyword formStatement format print nprint load save 30syn keyword formStatement bracket brackets 31syn keyword formStatement multiply count match only discard 32syn keyword formStatement trace4 traceN contract symmetrize antisymmetrize 33syn keyword formConditional if else endif while 34syn keyword formConditional repeat endrepeat label goto 35 36" some special functions 37syn keyword formStatement g_ gi_ g5_ g6_ g7_ 5_ 6_ 7_ 38syn keyword formStatement e_ d_ delta_ theta_ sum_ sump_ 39 40" pattern matching for keywords 41syn match formComment "^\ *\*.*$" 42syn match formComment "\;\ *\*.*$" 43syn region formString start=+"+ end=+"+ 44syn region formString start=+'+ end=+'+ 45syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>" 46syn match formNumber "\<\d\+\>" 47syn match formNumber "\<\d\+\.\d*\>" 48syn match formNumber "\.\d\+\>" 49syn match formNumber "-\d" contains=Number 50syn match formNumber "-\.\d" contains=Number 51syn match formNumber "i_\+\>" 52syn match formNumber "fac_\+\>" 53syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>" 54 55" hi User Labels 56syn sync ccomment formComment minlines=10 57 58" Define the default highlighting. 59" For version 5.7 and earlier: only when not done already 60" For version 5.8 and later: only when an item doesn't have highlighting yet 61if version >= 508 || !exists("did_form_syn_inits") 62 if version < 508 63 let did_form_syn_inits = 1 64 command -nargs=+ HiLink hi link <args> 65 else 66 command -nargs=+ HiLink hi def link <args> 67 endif 68 69 HiLink formConditional Conditional 70 HiLink formNumber Number 71 HiLink formStatement Statement 72 HiLink formComment Comment 73 HiLink formPreProc PreProc 74 HiLink formDirective PreProc 75 HiLink formType Type 76 HiLink formString String 77 78 if !exists("form_enhanced_color") 79 HiLink formHeaderStatement Statement 80 else 81 " enhanced color mode 82 HiLink formHeaderStatement HeaderStatement 83 " dark and a light background for local types 84 if &background == "dark" 85 hi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold 86 else 87 hi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold 88 endif 89 " change slightly the default for dark gvim 90 if has("gui_running") && &background == "dark" 91 hi Conditional guifg=LightBlue gui=bold 92 hi Statement guifg=LightYellow 93 endif 94 endif 95 96 delcommand HiLink 97endif 98 99 let b:current_syntax = "form" 100 101" vim: ts=8 102