annotate runtime/syntax/mf.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: Metafont
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " Last Change: April 25, 2001
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6 " For version 5.x: Clear all syntax items
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " For version 6.x: Quit when a syntax file was already loaded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8 if version < 600
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 syn clear
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 elseif exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14 " Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 " Page 210: 'boolean expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16 syn keyword mfBoolExp true false known unknown odd charexists not and or
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 " Page 210: 'numeric expression'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19 syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumber
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 syn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypart
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21 syn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 syn keyword mfNumExp uniformdeviate
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 " Page 211: 'internal quantities'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25 syn keyword mfInternal tracingtitles tracingequations tracingcapsules
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 syn keyword mfInternal tracingchoices tracingspecs tracingpens
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 syn keyword mfInternal tracingcommands tracingrestores tracingmacros
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 syn keyword mfInternal tracingedges tracingoutput tracingonline tracingstats
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29 syn keyword mfInternal pausing showstopping fontmaking proofing
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn keyword mfInternal turningcheck warningcheck smoothing autorounding
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31 syn keyword mfInternal granularity fillin year month day time
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32 syn keyword mfInternal charcode charext charwd charht chardp charic
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 syn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffset
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 syn keyword mfInternal boundarychar
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 " Page 212: 'pair expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 syn keyword mfPairExp point of precontrol postcontrol penoffset rotated
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn keyword mfPairExp zscaled
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41 " Page 213: 'path expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 syn keyword mfPathExp makepath reverse subpath curl tension atleast
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43 syn keyword mfPathExp controls cycle
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 " Page 214: 'pen expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 syn keyword mfPenExp nullpen pencircle makepen
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 " Page 214: 'picutre expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49 syn keyword mfPicExp nullpicture
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 " Page 214: 'string expressions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52 syn keyword mfStringExp jobname readstring str char decimal substring
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 " Page 217: 'commands and statements'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 syn keyword mfCommand end dump save interim newinternal randomseed let
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 syn keyword mfCommand delimiters outer everyjob show showvariable showtoken
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 syn keyword mfCommand showdependencies showstats message errmessage errhelp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 syn keyword mfCommand batchmode nonstopmode scrollmode errorstopmode
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 syn keyword mfCommand addto also contour doublepath withpen withweight cull
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60 syn keyword mfCommand keeping dropping display inwindow openwindow at from to
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 syn keyword mfCommand shipout special numspecial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63 " Page 56: 'types'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 syn keyword mfType boolean numeric pair path pen picture string transform
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66 " Page 155: 'grouping'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67 syn keyword mfStatement begingroup endgroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 " Page 165: 'definitions'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70 syn keyword mfDefinition enddef def expr suffix text primary secondary
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71 syn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73 " Page 169: 'conditions and loops'
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 syn keyword mfCondition if fi else elseif endfor for forsuffixes forever
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75 syn keyword mfCondition step until exitif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77 " Other primitives listed in the index
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78 syn keyword mfPrimitive charlist endinput expandafter extensible
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 syn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimes
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80 syn keyword mfPrimitive kern ligtable quote scantokens skipto
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82 " Keywords defined by plain.mf (defined on pp.262-278)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 if !exists("plain_mf_macros")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84 let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 " metapost.vim does so to turn off Metafont macros
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87 if plain_mf_macros
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89 syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90 syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91 syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 syn keyword mfMacro currentpen currentpen_path currentpicture
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93 syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94 syn keyword mfMacro define_blacker_pixels define_corrected_pixels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95 syn keyword mfMacro define_good_x_pixels define_good_y_pixels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96 syn keyword mfMacro define_horizontal_corrected_pixels define_pixels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98 syn keyword mfMacro define_whole_vertical_blacker_pixels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99 syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100 syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101 syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102 syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103 syn keyword mfMacro font_coding_scheme font_extra_space font_identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104 syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105 syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106 syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107 syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 syn keyword mfMacro interact interpath intersectionpoint inverse italcorr
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109 syn keyword mfMacro join_radius killtext labelfont labels left lft localfont
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
111 syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
112 syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
113 syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
114 syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
115 syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
116 syn keyword mfMacro proofrulethickness quartercircle range reflectedabout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
117 syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
118 syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
119 syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
120 syn keyword mfMacro solve stop superellipse takepower tensepath titlefont
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
121 syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
122 syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
123 syn keyword mfMacro vround w whatever
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
124 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
125
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
126 " Some other basic macro names, e.g., from cmbase, logo, etc.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
127 if !exists("other_mf_macros")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
128 let other_mf_macros = 1 " Set this to '0' if your code gets too colourful
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
129 " metapost.vim does so to turn off Metafont macros
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
130 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
131 if other_mf_macros
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
132 syn keyword mfMacro beginlogochar
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
133 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
134
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
135 " Numeric tokens
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
136 syn match mfNumeric "[-]\=\d\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
137 syn match mfNumeric "[-]\=\.\d\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
138 syn match mfNumeric "[-]\=\d\+\.\d\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
139
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
140 " Metafont lengths
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
141 syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
142 syn match mfLength "\<[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
143 syn match mfLength "\<[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
144 syn match mfLength "\<[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
145
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
146 " Metafont coordinates and points
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
147 syn match mfCoord "\<[xy]\d\+\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
148 syn match mfPoint "\<z\d\+\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
149
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
150 " String constants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
151 syn region mfString start=+"+ end=+"+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
152
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
153 " Comments:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
154 syn match mfComment "%.*$"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
155
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
156 " synchronizing
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
157 syn sync maxlines=50
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
158
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
159 " Define the default highlighting
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
160 " For version 5.7 and earlier: only when not done already
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
161 " For version 5.8 and later: only when an item doesn't have highlighting yet
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
162 if version >= 508 || !exists("did_mf_syntax_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
163 if version < 508
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
164 let did_mf_syntax_inits = 1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
165 command -nargs=+ HiLink hi link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
166 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
167 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
168 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
169
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
170 HiLink mfBoolExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
171 HiLink mfNumExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
172 HiLink mfInternal Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
173 HiLink mfPairExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
174 HiLink mfPathExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
175 HiLink mfPenExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
176 HiLink mfPicExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
177 HiLink mfStringExp Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
178 HiLink mfCommand Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
179 HiLink mfType Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
180 HiLink mfStatement Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
181 HiLink mfDefinition Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
182 HiLink mfCondition Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
183 HiLink mfPrimitive Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
184 HiLink mfMacro Macro
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
185 HiLink mfCoord Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
186 HiLink mfPoint Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
187 HiLink mfNumeric Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
188 HiLink mfLength Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
189 HiLink mfComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
190 HiLink mfString String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
191
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
192 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
193 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
194
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
195 let b:current_syntax = "mf"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
196
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
197 " vim: ts=8