blob: 726bf475649c4be81b9aa195e4319984c121f332 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: FORM
3" Maintainer: Michael M. Tung <michael.tung@uni-mainz.de>
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