mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
	
	
		
			133 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			133 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	MetaPost | ||
|  | " Maintainer:	Andreas Scherer <andreas.scherer@pobox.com> | ||
|  | " Last Change:	April 30, 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 | ||
|  | 
 | ||
|  | let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost | ||
|  | let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither | ||
|  | 
 | ||
|  | " Read the Metafont syntax to start with | ||
|  | if version < 600 | ||
|  |   source <sfile>:p:h/mf.vim | ||
|  | else | ||
|  |   runtime! syntax/mf.vim | ||
|  | endif | ||
|  | 
 | ||
|  | " MetaPost has TeX inserts for typeset labels | ||
|  | " verbatimtex, btex, and etex will be treated as keywords | ||
|  | syn match mpTeXbegin "\(verbatimtex\|btex\)" | ||
|  | syn match mpTeXend "etex" | ||
|  | syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend keepend | ||
|  | 
 | ||
|  | " MetaPost primitives not found in Metafont | ||
|  | syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont | ||
|  | syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak | ||
|  | syn keyword mpInternal prologues redpart setbounds tracinglostchars | ||
|  | syn keyword mpInternal truecorners ulcorner urcorner withcolor | ||
|  | 
 | ||
|  | " Metafont primitives not found in MetaPost | ||
|  | syn keyword notDefined autorounding chardx chardy fillin granularity hppp | ||
|  | syn keyword notDefined proofing smoothing tracingedges tracingpens | ||
|  | syn keyword notDefined turningcheck vppp xoffset yoffset | ||
|  | 
 | ||
|  | " Keywords defined by plain.mp | ||
|  | if !exists("plain_mp_macros") | ||
|  |   let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful | ||
|  | endif | ||
|  | if plain_mp_macros | ||
|  |   syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig | ||
|  |   syn keyword mpMacro beveled black blue buildcycle butt center cutafter | ||
|  |   syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen | ||
|  |   syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow | ||
|  |   syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig | ||
|  |   syn keyword mpMacro green label labeloffset mitered red rounded squared | ||
|  |   syn keyword mpMacro thelabel white base_name base_version | ||
|  |   syn keyword mpMacro upto downto exitunless relax gobble gobbled | ||
|  |   syn keyword mpMacro interact loggingall tracingall tracingnone | ||
|  |   syn keyword mpMacro eps epsilon infinity right left up down origin | ||
|  |   syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity | ||
|  |   syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor | ||
|  |   syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector | ||
|  |   syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod | ||
|  |   syn keyword mpMacro takepower direction directionpoint intersectionpoint | ||
|  |   syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround | ||
|  |   syn keyword mpMacro rotatedabout min max flex superellipse interpath | ||
|  |   syn keyword mpMacro magstep currentpen currentpen_path currentpicture | ||
|  |   syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw | ||
|  |   syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup | ||
|  |   syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen | ||
|  |   syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt | ||
|  |   syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel | ||
|  |   syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup | ||
|  |   syn keyword mpMacro shipit bye hide stop solve | ||
|  | endif | ||
|  | 
 | ||
|  | " Keywords defined by mfplain.mp | ||
|  | if !exists("mfplain_mp_macros") | ||
|  |   let mfplain_mp_macros = 0 " Set this to '1' to include these macro names | ||
|  | endif | ||
|  | if mfplain_mp_macros | ||
|  |   syn keyword mpMacro beginchar blacker capsule_def change_width | ||
|  |   syn keyword mpMacro define_blacker_pixels define_corrected_pixels | ||
|  |   syn keyword mpMacro define_good_x_pixels define_good_y_pixels | ||
|  |   syn keyword mpMacro define_horizontal_corrected_pixels | ||
|  |   syn keyword mpMacro define_pixels define_whole_blacker_pixels | ||
|  |   syn keyword mpMacro define_whole_vertical_blacker_pixels | ||
|  |   syn keyword mpMacro define_whole_vertical_pixels endchar | ||
|  |   syn keyword mpMacro extra_beginchar extra_endchar extra_setup | ||
|  |   syn keyword mpMacro font_coding_scheme font_extra_space font_identifier | ||
|  |   syn keyword mpMacro font_normal_shrink font_normal_space | ||
|  |   syn keyword mpMacro font_normal_stretch font_quad font_size | ||
|  |   syn keyword mpMacro font_slant font_x_height italcorr labelfont | ||
|  |   syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup | ||
|  |   syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode | ||
|  | 
 | ||
|  |   " plus some no-ops, also from mfplain.mp | ||
|  |   syn keyword mpMacro cullit currenttransform gfcorners grayfont hround | ||
|  |   syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit | ||
|  |   syn keyword mpMacro proofoffset screenchars screenrule screenstrokes | ||
|  |   syn keyword mpMacro showit slantfont titlefont unitpixel vround | ||
|  | endif | ||
|  | 
 | ||
|  | " Keywords defined by other macro packages, e.g., boxes.mp | ||
|  | if !exists("other_mp_macros") | ||
|  |   let other_mp_macros = 1 " Set this to '0' if your source gets too colourful | ||
|  | endif | ||
|  | if other_mp_macros | ||
|  |   syn keyword mpMacro circmargin defaultdx defaultdy | ||
|  |   syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes | ||
|  |   syn keyword mpMacro drawunboxed fixpos fixsize pic | ||
|  | endif | ||
|  | 
 | ||
|  | " 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_mp_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_mp_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink mpTeXinsert	String | ||
|  |   HiLink mpTeXbegin	Statement | ||
|  |   HiLink mpTeXend	Statement | ||
|  |   HiLink mpInternal	mfInternal | ||
|  |   HiLink mpMacro	Macro | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "mp" | ||
|  | 
 | ||
|  | " vim: ts=8 |