1" Vim syntax file
2" Language:	gnuplot 3.8i.0
3" Maintainer:	John Hoelzel johnh51@users.sourceforge.net
4" Last Change:	Mon May 26 02:33:33 UTC 2003
5" Filenames:	*.gpi  *.gih   scripts: #!*gnuplot
6" URL:		http://johnh51.get.to/vim/syntax/gnuplot.vim
7"
8
9" thanks to "David Necas (Yeti)" <yeti@physics.muni.cz> for heads up - working on more changes .
10" *.gpi      = GnuPlot Input - what I use because there is no other guideline. jeh 11/2000
11" *.gih      = makes using cut/pasting from gnuplot.gih easier ...
12" #!*gnuplot = for Linux bash shell scripts of gnuplot commands.
13"	       emacs used a suffix of '<gp?>'
14" gnuplot demo files show no preference.
15" I will post mail and newsgroup comments on a standard suffix in 'URL' directory.
16
17" For version 5.x: Clear all syntax items
18" For version 6.x: Quit when a syntax file was already loaded
19if version < 600
20  syntax clear
21elseif exists("b:current_syntax")
22  finish
23endif
24
25" some shortened names to make demo files look clean... jeh. 11/2000
26" demos -> 3.8i ... jeh. 5/2003 - a work in progress...
27
28" commands
29
30syn keyword gnuplotStatement	cd call clear exit set unset plot splot help
31syn keyword gnuplotStatement	load pause quit fit rep[lot] if
32syn keyword gnuplotStatement	FIT_LIMIT FIT_MAXITER FIT_START_LAMBDA
33syn keyword gnuplotStatement	FIT_LAMBDA_FACTOR FIT_LOG FIT_SCRIPT
34syn keyword gnuplotStatement	print pwd reread reset save show test ! functions var
35syn keyword gnuplotConditional	if
36" if is cond + stmt - ok?
37
38" numbers fm c.vim
39
40"	integer number, or floating point number without a dot and with "f".
41syn case    ignore
42syn match   gnuplotNumber	"\<[0-9]\+\(u\=l\=\|lu\|f\)\>"
43"	floating point number, with dot, optional exponent
44syn match   gnuplotFloat	"\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
45"	floating point number, starting with a dot, optional exponent
46syn match   gnuplotFloat	"\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>"
47"	floating point number, without dot, with exponent
48syn match   gnuplotFloat	"\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>"
49"	hex number
50syn match   gnuplotNumber	"\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
51syn case    match
52"	flag an octal number with wrong digits by not hilighting
53syn match   gnuplotOctalError	"\<0[0-7]*[89]"
54
55" plot args
56
57syn keyword gnuplotType		u[sing] tit[le] notit[le] wi[th] steps fs[teps]
58syn keyword gnuplotType		title notitle t
59syn keyword gnuplotType		with w
60syn keyword gnuplotType		li[nes] l
61" t - too much?  w - too much?  l - too much?
62syn keyword gnuplotType		linespoints via
63
64" funcs
65
66syn keyword gnuplotFunc		abs acos acosh arg asin asinh atan atanh atan2
67syn keyword gnuplotFunc		besj0 besj1 besy0 besy1
68syn keyword gnuplotFunc		ceil column cos cosh erf erfc exp floor gamma
69syn keyword gnuplotFunc		ibeta inverf igamma imag invnorm int lgamma
70syn keyword gnuplotFunc		log log10 norm rand real sgn sin sinh sqrt tan
71syn keyword gnuplotFunc		lambertw
72syn keyword gnuplotFunc		tanh valid
73syn keyword gnuplotFunc		tm_hour tm_mday tm_min tm_mon tm_sec
74syn keyword gnuplotFunc		tm_wday tm_yday tm_year
75
76" set vars
77
78syn keyword gnuplotType		xdata timefmt grid noytics ytics fs
79syn keyword gnuplotType		logscale time notime mxtics nomxtics style mcbtics
80syn keyword gnuplotType		nologscale
81syn keyword gnuplotType		axes x1y2 unique acs[plines]
82syn keyword gnuplotType		size origin multiplot xtics xr[ange] yr[ange] square nosquare ratio noratio
83syn keyword gnuplotType		binary matrix index every thru sm[ooth]
84syn keyword gnuplotType		all angles degrees radians
85syn keyword gnuplotType		arrow noarrow autoscale noautoscale arrowstyle
86" autoscale args = x y xy z t ymin ... - too much?
87" needs code to: using title vs autoscale t
88syn keyword gnuplotType		x y z zcb
89syn keyword gnuplotType		linear  cubicspline  bspline order level[s]
90syn keyword gnuplotType		auto disc[rete] incr[emental] from to head nohead
91syn keyword gnuplotType		graph base both nosurface table out[put] data
92syn keyword gnuplotType		bar border noborder boxwidth
93syn keyword gnuplotType		clabel noclabel clip noclip cntrp[aram]
94syn keyword gnuplotType		contour nocontour
95syn keyword gnuplotType		dgrid3d nodgrid3d dummy encoding format
96" set encoding args not included - yet.
97syn keyword gnuplotType		function grid nogrid hidden[3d] nohidden[3d] isosample[s] key nokey
98syn keyword gnuplotType		historysize nohistorysize
99syn keyword gnuplotType		defaults offset nooffset trianglepattern undefined noundefined altdiagonal bentover noaltdiagonal nobentover
100syn keyword gnuplotType		left right top bottom outside below samplen spacing width height box nobox linestyle ls linetype lt linewidth lw
101syn keyword gnuplotType		Left Right autotitles noautotitles enhanced noenhanced
102syn keyword gnuplotType		isosamples
103syn keyword gnuplotType		label nolabel logscale nolog[scale] missing center font locale
104syn keyword gnuplotType		mapping margin bmargin lmargin rmargin tmargin spherical cylindrical cartesian
105syn keyword gnuplotType		linestyle nolinestyle linetype lt linewidth lw pointtype pt pointsize ps
106syn keyword gnuplotType		mouse nomouse
107syn keyword gnuplotType		nooffsets data candlesticks financebars linespoints lp vector nosurface
108syn keyword gnuplotType		term[inal] linux aed767 aed512 gpic
109syn keyword gnuplotType		regis tek410x tek40 vttek kc-tek40xx
110syn keyword gnuplotType		km-tek40xx selanar bitgraph xlib x11 X11
111" x11 args
112syn keyword gnuplotType		aifm cgm dumb fig gif small large size nofontlist winword6 corel dxf emf
113syn keyword gnuplotType		hpgl
114" syn keyword gnuplotType	transparent hp2623a hp2648 hp500c pcl5				      why jeh
115syn keyword gnuplotType		hp2623a hp2648 hp500c pcl5
116syn match gnuplotType		"\<transparent\>"
117syn keyword gnuplotType		hpljii hpdj hppj imagen mif pbm png svg
118syn keyword gnuplotType		postscript enhanced_postscript qms table
119" postscript editing values?
120syn keyword gnuplotType		tgif tkcanvas epson-180dpi epson-60dpi
121syn keyword gnuplotType		epson-lx800 nec-cp6 okidata starc
122syn keyword gnuplotType		tandy-60dpi latex emtex pslatex pstex epslatex
123syn keyword gnuplotType		eepic tpic pstricks texdraw mf metafont mpost mp
124syn keyword gnuplotType		timestamp notimestamp
125syn keyword gnuplotType		variables version
126syn keyword gnuplotType		x2data y2data ydata zdata
127syn keyword gnuplotType		reverse writeback noreverse nowriteback
128syn keyword gnuplotType		axis mirror autofreq nomirror rotate autofreq norotate
129syn keyword gnuplotType		update
130syn keyword gnuplotType		multiplot nomultiplot mytics
131syn keyword gnuplotType		nomytics mztics nomztics mx2tics nomx2tics
132syn keyword gnuplotType		my2tics nomy2tics offsets origin output
133syn keyword gnuplotType		para[metric] nopara[metric] pointsize polar nopolar
134syn keyword gnuplotType		zrange x2range y2range rrange cbrange
135syn keyword gnuplotType		trange urange vrange sample[s] size
136syn keyword gnuplotType		bezier boxerrorbars boxes bargraph bar[s]
137syn keyword gnuplotType		boxxy[errorbars] csplines dots fsteps histeps impulses
138syn keyword gnuplotType		line[s] linesp[oints] points poiinttype sbezier splines steps
139" w lt lw ls	      = optional
140syn keyword gnuplotType		vectors xerr[orbars] xyerr[orbars] yerr[orbars] financebars candlesticks vector
141syn keyword gnuplotType		errorb[ars] surface
142syn keyword gnuplotType		filledcurve[s] pm3d   x1 x2 y1 y2 xy closed
143syn keyword gnuplotType		at pi front
144syn keyword gnuplotType		errorlines xerrorlines yerrorlines xyerrorlines
145syn keyword gnuplotType		tics ticslevel ticscale time timefmt view
146syn keyword gnuplotType		xdata xdtics noxdtics ydtics noydtics
147syn keyword gnuplotType		zdtics nozdtics x2dtics nox2dtics y2dtics noy2dtics
148syn keyword gnuplotType		xlab[el] ylab[el] zlab[el] cblab[el] x2label y2label xmtics
149syn keyword gnuplotType		xmtics noxmtics ymtics noymtics zmtics nozmtics
150syn keyword gnuplotType		x2mtics nox2mtics y2mtics noy2mtics
151syn keyword gnuplotType		cbdtics nocbdtics cbmtics nocbmtics cbtics nocbtics
152syn keyword gnuplotType		xtics noxtics ytics noytics
153syn keyword gnuplotType		ztics noztics x2tics nox2tics
154syn keyword gnuplotType		y2tics noy2tics zero nozero zeroaxis nozeroaxis
155syn keyword gnuplotType		xzeroaxis noxzeroaxis yzeroaxis noyzeroaxis
156syn keyword gnuplotType		x2zeroaxis nox2zeroaxis y2zeroaxis noy2zeroaxis
157syn keyword gnuplotType		angles one two fill empty solid pattern
158syn keyword gnuplotType		default
159syn keyword gnuplotType		scansautomatic flush b[egin] noftriangles implicit
160" b too much? - used in demo
161syn keyword gnuplotType		palette positive negative ps_allcF nops_allcF maxcolors
162syn keyword gnuplotType		push fontfile pop
163syn keyword gnuplotType		rgbformulae defined file color model gradient colornames
164syn keyword gnuplotType		RGB HSV CMY YIQ XYZ
165syn keyword gnuplotType		colorbox vertical horizontal user bdefault
166syn keyword gnuplotType		loadpath fontpath decimalsign in out
167
168" comments + strings
169syn region gnuplotComment	start="#" end="$"
170syn region gnuplotComment	start=+"+ skip=+\\"+ end=+"+
171syn region gnuplotComment	start=+'+	     end=+'+
172
173" Define the default highlighting.
174" For version 5.7 and earlier: only when not done already
175" For version 5.8 and later: only when an item doesn't have highlighting yet
176if version >= 508 || !exists("did_gnuplot_syntax_inits")
177  if version < 508
178    let did_gnuplot_syntax_inits = 1
179    command -nargs=+ HiLink hi link <args>
180  else
181    command -nargs=+ HiLink hi def link <args>
182  endif
183
184  HiLink gnuplotStatement	Statement
185  HiLink gnuplotConditional	Conditional
186  HiLink gnuplotNumber		Number
187  HiLink gnuplotFloat		Float
188  HiLink gnuplotOctalError	Error
189  HiLink gnuplotFunc		Type
190  HiLink gnuplotType		Type
191  HiLink gnuplotComment	Comment
192
193  delcommand HiLink
194endif
195
196let b:current_syntax = "gnuplot"
197
198" vim: ts=8
199