1" Vim syntax file 2" Language: MetaPost 3" Maintainer: Andreas Scherer <[email protected]> 4" Last Change: April 30, 2001 5 6" quit when a syntax file was already loaded 7if exists("b:current_syntax") 8 finish 9endif 10 11let plain_mf_macros = 0 " plain.mf has no special meaning for MetaPost 12let other_mf_macros = 0 " cmbase.mf, logo.mf, ... neither 13 14" Read the Metafont syntax to start with 15runtime! syntax/mf.vim 16 17" MetaPost has TeX inserts for typeset labels 18" verbatimtex, btex, and etex will be treated as keywords 19syn match mpTeXbegin "\(verbatimtex\|btex\)" 20syn match mpTeXend "etex" 21syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 contains=mpTeXbegin,mpTeXend keepend 22 23" MetaPost primitives not found in Metafont 24syn keyword mpInternal bluepart clip color dashed fontsize greenpart infont 25syn keyword mpInternal linecap linejoin llcorner lrcorner miterlimit mpxbreak 26syn keyword mpInternal prologues redpart setbounds tracinglostchars 27syn keyword mpInternal truecorners ulcorner urcorner withcolor 28 29" Metafont primitives not found in MetaPost 30syn keyword notDefined autorounding chardx chardy fillin granularity hppp 31syn keyword notDefined proofing smoothing tracingedges tracingpens 32syn keyword notDefined turningcheck vppp xoffset yoffset 33 34" Keywords defined by plain.mp 35if !exists("plain_mp_macros") 36 let plain_mp_macros = 1 " Set this to '0' if your source gets too colourful 37endif 38if plain_mp_macros 39 syn keyword mpMacro ahangle ahlength background bbox bboxmargin beginfig 40 syn keyword mpMacro beveled black blue buildcycle butt center cutafter 41 syn keyword mpMacro cutbefore cuttings dashpattern defaultfont defaultpen 42 syn keyword mpMacro defaultscale dotlabel dotlabels drawarrow drawdblarrow 43 syn keyword mpMacro drawoptions endfig evenly extra_beginfig extra_endfig 44 syn keyword mpMacro green label labeloffset mitered red rounded squared 45 syn keyword mpMacro thelabel white base_name base_version 46 syn keyword mpMacro upto downto exitunless relax gobble gobbled 47 syn keyword mpMacro interact loggingall tracingall tracingnone 48 syn keyword mpMacro eps epsilon infinity right left up down origin 49 syn keyword mpMacro quartercircle halfcircle fullcircle unitsquare identity 50 syn keyword mpMacro blankpicture withdots ditto EOF pensquare penrazor 51 syn keyword mpMacro penspeck whatever abs round ceiling byte dir unitvector 52 syn keyword mpMacro inverse counterclockwise tensepath mod div dotprod 53 syn keyword mpMacro takepower direction directionpoint intersectionpoint 54 syn keyword mpMacro softjoin incr decr reflectedabout rotatedaround 55 syn keyword mpMacro rotatedabout min max flex superellipse interpath 56 syn keyword mpMacro magstep currentpen currentpen_path currentpicture 57 syn keyword mpMacro fill draw filldraw drawdot unfill undraw unfilldraw 58 syn keyword mpMacro undrawdot erase cutdraw image pickup numeric_pickup 59 syn keyword mpMacro pen_lft pen_rt pen_top pen_bot savepen clearpen 60 syn keyword mpMacro clear_pen_memory lft rt top bot ulft urt llft lrt 61 syn keyword mpMacro penpos penstroke arrowhead makelabel labels penlabel 62 syn keyword mpMacro range numtok thru clearxy clearit clearpen pickup 63 syn keyword mpMacro shipit bye hide stop solve 64endif 65 66" Keywords defined by mfplain.mp 67if !exists("mfplain_mp_macros") 68 let mfplain_mp_macros = 0 " Set this to '1' to include these macro names 69endif 70if mfplain_mp_macros 71 syn keyword mpMacro beginchar blacker capsule_def change_width 72 syn keyword mpMacro define_blacker_pixels define_corrected_pixels 73 syn keyword mpMacro define_good_x_pixels define_good_y_pixels 74 syn keyword mpMacro define_horizontal_corrected_pixels 75 syn keyword mpMacro define_pixels define_whole_blacker_pixels 76 syn keyword mpMacro define_whole_vertical_blacker_pixels 77 syn keyword mpMacro define_whole_vertical_pixels endchar 78 syn keyword mpMacro extra_beginchar extra_endchar extra_setup 79 syn keyword mpMacro font_coding_scheme font_extra_space font_identifier 80 syn keyword mpMacro font_normal_shrink font_normal_space 81 syn keyword mpMacro font_normal_stretch font_quad font_size 82 syn keyword mpMacro font_slant font_x_height italcorr labelfont 83 syn keyword mpMacro makebox makegrid maketicks mode_def mode_setup 84 syn keyword mpMacro o_correction proofrule proofrulethickness rulepen smode 85 86 " plus some no-ops, also from mfplain.mp 87 syn keyword mpMacro cullit currenttransform gfcorners grayfont hround 88 syn keyword mpMacro imagerules lowres_fix nodisplays notransforms openit 89 syn keyword mpMacro proofoffset screenchars screenrule screenstrokes 90 syn keyword mpMacro showit slantfont titlefont unitpixel vround 91endif 92 93" Keywords defined by other macro packages, e.g., boxes.mp 94if !exists("other_mp_macros") 95 let other_mp_macros = 1 " Set this to '0' if your source gets too colourful 96endif 97if other_mp_macros 98 syn keyword mpMacro circmargin defaultdx defaultdy 99 syn keyword mpMacro boxit boxjoin bpath circleit drawboxed drawboxes 100 syn keyword mpMacro drawunboxed fixpos fixsize pic 101endif 102 103" Define the default highlighting 104" Only when an item doesn't have highlighting yet 105 106hi def link mpTeXinsert String 107hi def link mpTeXbegin Statement 108hi def link mpTeXend Statement 109hi def link mpInternal mfInternal 110hi def link mpMacro Macro 111 112 113let b:current_syntax = "mp" 114 115" vim: ts=8 116