Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim73/syntax/mf.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim73/syntax/mf.vim')
-rw-r--r--vim73/syntax/mf.vim197
1 files changed, 197 insertions, 0 deletions
diff --git a/vim73/syntax/mf.vim b/vim73/syntax/mf.vim
new file mode 100644
index 0000000..8bc48fe
--- /dev/null
+++ b/vim73/syntax/mf.vim
@@ -0,0 +1,197 @@
+" Vim syntax file
+" Language: Metafont
+" Maintainer: Andreas Scherer <andreas.scherer@pobox.com>
+" Last Change: April 25, 2001
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syn clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'
+" Page 210: 'boolean expressions'
+syn keyword mfBoolExp true false known unknown odd charexists not and or
+
+" Page 210: 'numeric expression'
+syn keyword mfNumExp normaldeviate length ASCII oct hex angle turningnumber
+syn keyword mfNumExp totalweight directiontime xpart ypart xxpart xypart
+syn keyword mfNumExp yxpart yypart sqrt sind cosd mlog mexp floor
+syn keyword mfNumExp uniformdeviate
+
+" Page 211: 'internal quantities'
+syn keyword mfInternal tracingtitles tracingequations tracingcapsules
+syn keyword mfInternal tracingchoices tracingspecs tracingpens
+syn keyword mfInternal tracingcommands tracingrestores tracingmacros
+syn keyword mfInternal tracingedges tracingoutput tracingonline tracingstats
+syn keyword mfInternal pausing showstopping fontmaking proofing
+syn keyword mfInternal turningcheck warningcheck smoothing autorounding
+syn keyword mfInternal granularity fillin year month day time
+syn keyword mfInternal charcode charext charwd charht chardp charic
+syn keyword mfInternal chardx chardy designsize hppp vppp xoffset yoffset
+syn keyword mfInternal boundarychar
+
+" Page 212: 'pair expressions'
+syn keyword mfPairExp point of precontrol postcontrol penoffset rotated
+syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
+syn keyword mfPairExp zscaled
+
+" Page 213: 'path expressions'
+syn keyword mfPathExp makepath reverse subpath curl tension atleast
+syn keyword mfPathExp controls cycle
+
+" Page 214: 'pen expressions'
+syn keyword mfPenExp nullpen pencircle makepen
+
+" Page 214: 'picutre expressions'
+syn keyword mfPicExp nullpicture
+
+" Page 214: 'string expressions'
+syn keyword mfStringExp jobname readstring str char decimal substring
+
+" Page 217: 'commands and statements'
+syn keyword mfCommand end dump save interim newinternal randomseed let
+syn keyword mfCommand delimiters outer everyjob show showvariable showtoken
+syn keyword mfCommand showdependencies showstats message errmessage errhelp
+syn keyword mfCommand batchmode nonstopmode scrollmode errorstopmode
+syn keyword mfCommand addto also contour doublepath withpen withweight cull
+syn keyword mfCommand keeping dropping display inwindow openwindow at from to
+syn keyword mfCommand shipout special numspecial
+
+" Page 56: 'types'
+syn keyword mfType boolean numeric pair path pen picture string transform
+
+" Page 155: 'grouping'
+syn keyword mfStatement begingroup endgroup
+
+" Page 165: 'definitions'
+syn keyword mfDefinition enddef def expr suffix text primary secondary
+syn keyword mfDefinition tertiary vardef primarydef secondarydef tertiarydef
+
+" Page 169: 'conditions and loops'
+syn keyword mfCondition if fi else elseif endfor for forsuffixes forever
+syn keyword mfCondition step until exitif
+
+" Other primitives listed in the index
+syn keyword mfPrimitive charlist endinput expandafter extensible
+syn keyword mfPrimitive fontdimen headerbyte inner input intersectiontimes
+syn keyword mfPrimitive kern ligtable quote scantokens skipto
+
+" Keywords defined by plain.mf (defined on pp.262-278)
+if !exists("plain_mf_macros")
+ let plain_mf_macros = 1 " Set this to '0' if your source gets too colourful
+ " metapost.vim does so to turn off Metafont macros
+endif
+if plain_mf_macros
+ syn keyword mfMacro abs addto_currentpicture aspect_ratio base_name
+ syn keyword mfMacro base_version beginchar blacker blankpicture bot bye byte
+ syn keyword mfMacro capsule_def ceiling change_width clear_pen_memory clearit
+ syn keyword mfMacro clearpen clearxy counterclockwise culldraw cullit
+ syn keyword mfMacro currentpen currentpen_path currentpicture
+ syn keyword mfMacro currenttransform currentwindow cutdraw cutoff d decr
+ syn keyword mfMacro define_blacker_pixels define_corrected_pixels
+ syn keyword mfMacro define_good_x_pixels define_good_y_pixels
+ syn keyword mfMacro define_horizontal_corrected_pixels define_pixels
+ syn keyword mfMacro define_whole_blacker_pixels define_whole_pixels
+ syn keyword mfMacro define_whole_vertical_blacker_pixels
+ syn keyword mfMacro define_whole_vertical_pixels dir direction directionpoint
+ syn keyword mfMacro displaying ditto div dotprod down downto draw drawdot
+ syn keyword mfMacro endchar eps epsilon extra_beginchar extra_endchar
+ syn keyword mfMacro extra_setup erase exitunless fill filldraw fix_units flex
+ syn keyword mfMacro font_coding_scheme font_extra_space font_identifier
+ syn keyword mfMacro font_normal_shrink font_normal_space font_normal_stretch
+ syn keyword mfMacro font_quad font_setup font_size font_slant font_x_height
+ syn keyword mfMacro fullcircle generate gfcorners gobble gobbled grayfont h
+ syn keyword mfMacro halfcircle hide hround identity image_rules incr infinity
+ syn keyword mfMacro interact interpath intersectionpoint inverse italcorr
+ syn keyword mfMacro join_radius killtext labelfont labels left lft localfont
+ syn keyword mfMacro loggingall lowres lowres_fix mag magstep makebox makegrid
+ syn keyword mfMacro makelabel maketicks max min mod mode mode_def mode_name
+ syn keyword mfMacro mode_setup nodisplays notransforms number_of_modes numtok
+ syn keyword mfMacro o_correction openit origin pen_bot pen_lft pen_rt pen_top
+ syn keyword mfMacro penlabels penpos penrazor penspeck pensquare penstroke
+ syn keyword mfMacro pickup pixels_per_inch proof proofoffset proofrule
+ syn keyword mfMacro proofrulethickness quartercircle range reflectedabout
+ syn keyword mfMacro relax right rotatedabout rotatedaround round rt rulepen
+ syn keyword mfMacro savepen screenchars screen_rows screen_cols screenrule
+ syn keyword mfMacro screenstrokes shipit showit slantfont smode smoke softjoin
+ syn keyword mfMacro solve stop superellipse takepower tensepath titlefont
+ syn keyword mfMacro tolerance top tracingall tracingnone undraw undrawdot
+ syn keyword mfMacro unfill unfilldraw unitpixel unitsquare unitvector up upto
+ syn keyword mfMacro vround w whatever
+endif
+
+" Some other basic macro names, e.g., from cmbase, logo, etc.
+if !exists("other_mf_macros")
+ let other_mf_macros = 1 " Set this to '0' if your code gets too colourful
+ " metapost.vim does so to turn off Metafont macros
+endif
+if other_mf_macros
+ syn keyword mfMacro beginlogochar
+endif
+
+" Numeric tokens
+syn match mfNumeric "[-]\=\d\+"
+syn match mfNumeric "[-]\=\.\d\+"
+syn match mfNumeric "[-]\=\d\+\.\d\+"
+
+" Metafont lengths
+syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>"
+syn match mfLength "\<[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
+syn match mfLength "\<[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
+syn match mfLength "\<[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=\>"
+
+" Metafont coordinates and points
+syn match mfCoord "\<[xy]\d\+\>"
+syn match mfPoint "\<z\d\+\>"
+
+" String constants
+syn region mfString start=+"+ end=+"+
+
+" Comments:
+syn match mfComment "%.*$"
+
+" synchronizing
+syn sync maxlines=50
+
+" 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_mf_syntax_inits")
+ if version < 508
+ let did_mf_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink mfBoolExp Statement
+ HiLink mfNumExp Statement
+ HiLink mfInternal Identifier
+ HiLink mfPairExp Statement
+ HiLink mfPathExp Statement
+ HiLink mfPenExp Statement
+ HiLink mfPicExp Statement
+ HiLink mfStringExp Statement
+ HiLink mfCommand Statement
+ HiLink mfType Type
+ HiLink mfStatement Statement
+ HiLink mfDefinition Statement
+ HiLink mfCondition Conditional
+ HiLink mfPrimitive Statement
+ HiLink mfMacro Macro
+ HiLink mfCoord Identifier
+ HiLink mfPoint Identifier
+ HiLink mfNumeric Number
+ HiLink mfLength Number
+ HiLink mfComment Comment
+ HiLink mfString String
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "mf"
+
+" vim: ts=8