mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			198 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			198 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " 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
 |