" Vim syntax file
" Language: FORM
" Maintainer: Michael M. Tung <[email protected]>
" Last Change: 2001 May 10
" 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.
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case ignore
" A bunch of useful FORM keywords
syn keyword formType global local
syn keyword formHeaderStatement symbol symbols cfunction cfunctions
syn keyword formHeaderStatement function functions vector vectors
syn keyword formHeaderStatement set sets index indices
syn keyword formHeaderStatement dimension dimensions unittrace
syn keyword formStatement id identify drop skip
syn keyword formStatement write nwrite
syn keyword formStatement format print nprint load save
syn keyword formStatement bracket brackets
syn keyword formStatement multiply count match only discard
syn keyword formStatement trace4 traceN contract symmetrize antisymmetrize
syn keyword formConditional if else endif while
syn keyword formConditional repeat endrepeat label goto
" some special functions
syn keyword formStatement g_ gi_ g5_ g6_ g7_ 5_ 6_ 7_
syn keyword formStatement e_ d_ delta_ theta_ sum_ sump_
" pattern matching for keywords
syn match formComment "^\ *\*.*$"
syn match formComment "\;\ *\*.*$"
syn region formString start=+"+ end=+"+
syn region formString start=+'+ end=+'+
syn match formPreProc "^\=\#[a-zA-z][a-zA-Z0-9]*\>"
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_\+\>"
syn match formDirective "^\=\.[a-zA-z][a-zA-Z0-9]*\>"
" hi User Labels
syn sync ccomment formComment minlines=10
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_form_syn_inits")
if version < 508
let did_form_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink formConditional Conditional
HiLink formNumber Number
HiLink formStatement Statement
HiLink formComment Comment
HiLink formPreProc PreProc
HiLink formDirective PreProc
HiLink formType Type
HiLink formString String
if !exists("form_enhanced_color")
HiLink formHeaderStatement Statement
else
" enhanced color mode
HiLink formHeaderStatement HeaderStatement
" 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
endif
" 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
delcommand HiLink
endif
let b:current_syntax = "form"
" vim: ts=8
|