xref: /vim-8.2.3635/runtime/syntax/form.vim (revision 5b8d8fdb)
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