summaryrefslogtreecommitdiffstats
path: root/kate/data/metafont.xml
diff options
context:
space:
mode:
Diffstat (limited to 'kate/data/metafont.xml')
-rw-r--r--kate/data/metafont.xml1009
1 files changed, 1009 insertions, 0 deletions
diff --git a/kate/data/metafont.xml b/kate/data/metafont.xml
new file mode 100644
index 000000000..74538db73
--- /dev/null
+++ b/kate/data/metafont.xml
@@ -0,0 +1,1009 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+The lists of keywords of this file are borrowed from the VIM syntax
+files mp.vim and mf.vim
+We have moved some keywords for consistency
+-->
+
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Metapost/Metafont" section="Markup" version="0.9" kateversion="2.4"
+extensions="*.mp;*.mps;*.mpost;*.mf" mimetype="text/x-metapost"
+author="Yedvilun (yedvilun@gmail.com)" license="LGPL">
+ <highlighting>
+ <!--Here are some listing from mf.vim-->
+ <!--Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'-->
+ <!--Page 210: 'boolean expressions'-->
+ <list name="mfBoolExp">
+ <item>true</item>
+
+ <item>false</item>
+ <item>known</item>
+ <item>unknown</item>
+ <item>odd</item>
+ <item>charexists</item>
+ <item>not</item>
+
+ <item>and</item>
+ <item>or</item>
+ </list>
+
+ <!--Page 210: 'numeric expression'-->
+ <list name="mfNumExp">
+ <item>normaldeviate</item>
+ <item>length</item>
+
+ <item>ASCII</item>
+ <item>oct</item>
+ <item>hex</item>
+ <item>angle</item>
+ <item>turningnumber</item>
+ <item>totalweight</item>
+
+ <item>directiontime</item>
+ <item>xpart</item>
+ <item>ypart</item>
+ <item>xxpart</item>
+ <item>xypart</item>
+ <item>yxpart</item>
+
+ <item>yypart</item>
+ <item>sqrt</item>
+ <item>sind</item>
+ <item>cosd</item>
+ <item>mlog</item>
+ <item>mexp</item>
+
+ <item>floor</item>
+ <item>uniformdeviate</item>
+ <item>abs</item>
+ <item>div</item>
+ <item>dotprod</item>
+ <item>max</item>
+
+ <item>min</item>
+ <item>mod</item>
+ <item>ceiling</item>
+ </list>
+
+ <!--Page 211: 'internal quantities'-->
+ <list name="mfInternal">
+ <item>tracingtitles</item>
+
+ <item>tracingequations</item>
+ <item>tracingcapsules</item>
+ <item>tracingchoices</item>
+ <item>tracingspecs</item>
+ <item>tracingpens</item>
+ <item>tracingcommands</item>
+
+ <item>tracingrestores</item>
+ <item>tracingmacros</item>
+ <item>tracingedges</item>
+ <item>tracingoutput</item>
+ <item>tracingonline</item>
+ <item>tracingstats</item>
+
+ <item>pausing</item>
+ <item>showstopping</item>
+ <item>fontmaking</item>
+ <item>proofing</item>
+ <item>turningcheck</item>
+ <item>warningcheck</item>
+
+ <item>smoothing</item>
+ <item>autorounding</item>
+ <item>granularity</item>
+ <item>fillin</item>
+ <item>year</item>
+ <item>month</item>
+
+ <item>day</item>
+ <item>time</item>
+ <item>charcode</item>
+ <item>charext</item>
+ <item>charwd</item>
+ <item>charht</item>
+
+ <item>chardp</item>
+ <item>charic</item>
+ <item>chardx</item>
+ <item>chardy</item>
+ <item>designsize</item>
+ <item>hppp</item>
+
+ <item>vppp</item>
+ <item>xoffset</item>
+ <item>yoffset</item>
+ <item>boundarychar</item>
+ </list>
+
+ <!--Page 212: 'pair expressions'-->
+
+ <list name="mfPairExp">
+ <item>point</item>
+ <item>of</item>
+ <item>precontrol</item>
+ <item>postcontrol</item>
+ <item>penoffset</item>
+
+ <item>rotated</item>
+ <item>scaled</item>
+ <item>shifted</item>
+ <item>slanted</item>
+ <item>transformed</item>
+ <item>xscaled</item>
+
+ <item>yscaled</item>
+ <item>zscaled</item>
+ </list>
+
+ <!--Page 213: 'path expressions'-->
+ <list name="mfPathExp">
+ <item>makepath</item>
+ <item>reverse</item>
+
+ <item>subpath</item>
+ <item>curl</item>
+ <item>tension</item>
+ <item>atleast</item>
+ <item>controls</item>
+ <item>cycle</item>
+
+ </list>
+
+ <!--Page 214: 'pen expressions'-->
+ <list name="mfPenExp">
+ <item>nullpen</item>
+ <item>pencircle</item>
+ <item>makepen</item>
+ </list>
+
+ <!--Page 214: 'picture expressions'-->
+ <list name="mfPicExp">
+ <item>nullpicture</item>
+ </list>
+
+ <!--Page 214: 'string expressions'-->
+ <list name="mfStringExp">
+ <item>jobname</item>
+
+ <item>readstring</item>
+ <item>str</item>
+ <item>char</item>
+ <item>decimal</item>
+ <item>substring</item>
+ </list>
+
+ <!--Page 217: 'commands and statements'-->
+ <list name="mfCommand">
+ <item>end</item>
+ <item>dump</item>
+ <item>save</item>
+ <item>interim</item>
+
+ <item>newinternal</item>
+ <item>randomseed</item>
+ <item>let</item>
+ <item>delimiters</item>
+ <item>outer</item>
+ <item>everyjob</item>
+
+ <item>show</item>
+ <item>showvariable</item>
+ <item>showtoken</item>
+ <item>showdependencies</item>
+ <item>showstats</item>
+ <item>message</item>
+
+ <item>errmessage</item>
+ <item>errhelp</item>
+ <item>batchmode</item>
+ <item>nonstopmode</item>
+ <item>scrollmode</item>
+ <item>errorstopmode</item>
+
+ <item>addto</item>
+ <item>also</item>
+ <item>contour</item>
+ <item>doublepath</item>
+ <item>withpen</item>
+ <item>withweight</item>
+
+ <item>cull</item>
+ <item>keeping</item>
+ <item>dropping</item>
+ <item>display</item>
+ <item>inwindow</item>
+ <item>openwindow</item>
+
+ <item>at</item>
+ <item>from</item>
+ <item>to</item>
+ <item>shipout</item>
+ <item>special</item>
+ <item>numspecial</item>
+
+ </list>
+
+ <!--Page 56: 'types'-->
+ <list name="mfType">
+ <item>boolean</item>
+ <item>numeric</item>
+ <item>pair</item>
+ <item>path</item>
+
+ <item>pen</item>
+ <item>picture</item>
+ <item>string</item>
+ <item>transform</item>
+ </list>
+
+ <!--Page 155: 'grouping'-->
+
+<!-- <list name="mfStatement"> -->
+<!-- <item>begingroup</item> -->
+<!-- <item>endgroup</item> -->
+<!-- </list> -->
+
+ <!--Page 165: 'definitions'-->
+ <list name="mfDefinition">
+<!-- <item>enddef</item> -->
+<!-- <item>def</item> -->
+ <item>expr</item>
+ <item>suffix</item>
+
+ <item>text</item>
+ <item>primary</item>
+ <item>secondary</item>
+ <item>tertiary</item>
+<!-- <item>vardef</item> -->
+ <item>primarydef</item>
+ <item>secondarydef</item>
+
+ <item>tertiarydef</item>
+ </list>
+
+ <!--Page 169: 'conditions and loops'-->
+ <list name="mfCondition">
+<!-- <item>if</item> -->
+<!-- <item>fi</item> -->
+ <item>else</item>
+ <item>elseif</item>
+
+<!-- <item>endfor</item> -->
+<!-- <item>for</item> -->
+<!-- <item>forsuffixes</item> -->
+<!-- <item>forever</item> -->
+ <item>step</item>
+ <item>until</item>
+ <item>upto</item>
+ <item>exitif</item>
+ </list>
+
+ <!--Other primitives listed in the index-->
+ <list name="mfPrimitive">
+ <item>charlist</item>
+ <item>endinput</item>
+ <item>expandafter</item>
+ <item>extensible</item>
+
+ <item>fontdimen</item>
+ <item>headerbyte</item>
+ <item>inner</item>
+ <item>input</item>
+ <item>intersectiontimes</item>
+ <item>kern</item>
+
+ <item>ligtable</item>
+ <item>quote</item>
+ <item>scantokens</item>
+ <item>skipto</item>
+ </list>
+
+ <!--Keywords defined by plain.mf-->
+
+ <list name="mfMacro">
+<!-- <item>abs</item> -->
+ <item>addto_currentpicture</item>
+ <item>aspect_ratio</item>
+ <item>base_name</item>
+ <item>base_version</item>
+<!-- <item>beginchar</item> -->
+ <item>blacker</item>
+
+ <item>blankpicture</item>
+ <item>bot</item>
+ <item>bye</item>
+ <item>byte</item>
+ <item>capsule_def</item>
+<!-- <item>ceiling</item> -->
+ <item>change_width</item>
+
+ <item>clear_pen_memory</item>
+ <item>clearit</item>
+ <item>clearpen</item>
+ <item>clearxy</item>
+ <item>counterclockwise</item>
+ <item>culldraw</item>
+
+ <item>cullit</item>
+ <item>currentpen</item>
+ <item>currentpen_path</item>
+ <item>currentpicture</item>
+ <item>currenttransform</item>
+ <item>currentwindow</item>
+
+ <item>cutdraw</item>
+ <item>cutoff</item>
+ <item>d</item>
+ <item>decr</item>
+ <item>define_blacker_pixels</item>
+ <item>define_corrected_pixels</item>
+
+ <item>define_good_x_pixels</item>
+ <item>define_good_y_pixels</item>
+ <item>define_horizontal_corrected_pixels</item>
+ <item>define_pixels</item>
+ <item>define_whole_blacker_pixels</item>
+ <item>define_whole_pixels</item>
+
+ <item>define_whole_vertical_blacker_pixels</item>
+ <item>define_whole_vertical_pixels</item>
+ <item>dir</item>
+ <item>direction</item>
+ <item>directionpoint</item>
+ <item>displaying</item>
+
+ <item>ditto</item>
+<!-- <item>div</item> -->
+<!-- <item>dotprod</item> -->
+ <item>down</item>
+ <item>downto</item>
+ <item>draw</item>
+ <item>drawdot</item>
+
+<!-- <item>endchar</item> -->
+ <item>eps</item>
+ <item>epsilon</item>
+<!-- <item>extra_beginchar</item> -->
+<!-- <item>extra_endchar</item> -->
+ <item>extra_setup</item>
+ <item>erase</item>
+ <item>exitunless</item>
+
+ <item>fill</item>
+ <item>filldraw</item>
+ <item>fix_units</item>
+ <item>flex</item>
+ <item>font_coding_scheme</item>
+ <item>font_extra_space</item>
+
+ <item>font_identifier</item>
+ <item>font_normal_shrink</item>
+ <item>font_normal_space</item>
+ <item>font_normal_stretch</item>
+ <item>font_quad</item>
+ <item>font_setup</item>
+
+ <item>font_size</item>
+ <item>font_slant</item>
+ <item>font_x_height</item>
+ <item>fullcircle</item>
+ <item>generate</item>
+ <item>gfcorners</item>
+
+ <item>gobble</item>
+ <item>gobbled</item>
+ <item>grayfont</item>
+ <item>h</item>
+ <item>halfcircle</item>
+ <item>hide</item>
+
+ <item>hround</item>
+ <item>identity</item>
+ <item>image_rules</item>
+ <item>incr</item>
+ <item>infinity</item>
+ <item>interact</item>
+
+ <item>interpath</item>
+ <item>intersectionpoint</item>
+ <item>inverse</item>
+ <item>italcorr</item>
+ <item>join_radius</item>
+ <item>killtext</item>
+
+ <item>labelfont</item>
+ <item>labels</item>
+ <item>left</item>
+ <item>lft</item>
+ <item>localfont</item>
+ <item>loggingall</item>
+
+ <item>lowres</item>
+ <item>lowres_fix</item>
+ <item>mag</item>
+ <item>magstep</item>
+ <item>makebox</item>
+ <item>makegrid</item>
+
+ <item>makelabel</item>
+ <item>maketicks</item>
+<!-- <item>max</item> -->
+<!-- <item>min</item> -->
+<!-- <item>mod</item> -->
+ <item>mode</item>
+ <item>mode_def</item>
+ <item>mode_name</item>
+
+ <item>mode_setup</item>
+ <item>nodisplays</item>
+ <item>notransforms</item>
+ <item>number_of_modes</item>
+ <item>numtok</item>
+ <item>o_correction</item>
+
+ <item>openit</item>
+ <item>origin</item>
+ <item>pen_bot</item>
+ <item>pen_lft</item>
+ <item>pen_rt</item>
+ <item>pen_top</item>
+
+ <item>penlabels</item>
+ <item>penpos</item>
+ <item>penrazor</item>
+ <item>penspeck</item>
+ <item>pensquare</item>
+ <item>penstroke</item>
+
+ <item>pickup</item>
+ <item>pixels_per_inch</item>
+ <item>proof</item>
+ <item>proofoffset</item>
+ <item>proofrule</item>
+ <item>proofrulethickness</item>
+
+ <item>quartercircle</item>
+ <item>range</item>
+ <item>reflectedabout</item>
+ <item>relax</item>
+ <item>right</item>
+ <item>rotatedabout</item>
+
+ <item>rotatedaround</item>
+ <item>round</item>
+ <item>rt</item>
+ <item>rulepen</item>
+ <item>savepen</item>
+ <item>screenchars</item>
+
+ <item>screen_rows</item>
+ <item>screen_cols</item>
+ <item>screenrule</item>
+ <item>screenstrokes</item>
+ <item>shipit</item>
+ <item>showit</item>
+
+ <item>slantfont</item>
+ <item>smode</item>
+ <item>smoke</item>
+ <item>softjoin</item>
+ <item>solve</item>
+ <item>stop</item>
+
+ <item>superellipse</item>
+ <item>takepower</item>
+ <item>tensepath</item>
+ <item>titlefont</item>
+ <item>tolerance</item>
+ <item>top</item>
+
+ <item>tracingall</item>
+ <item>tracingnone</item>
+ <item>undraw</item>
+ <item>undrawdot</item>
+ <item>unfill</item>
+ <item>unfilldraw</item>
+
+ <item>unitpixel</item>
+ <item>unitsquare</item>
+ <item>unitvector</item>
+ <item>up</item>
+ <item>upto</item>
+ <item>vround</item>
+
+ <item>w</item>
+ <item>whatever</item>
+<!-- <item>beginlogochar</item> -->
+ </list>
+
+ <!--Here are some listing from mp.vim-->
+ <!--MetaPost primitives not found in Metafont-->
+ <list name="mpInternal">
+ <item>bluepart</item>
+
+ <item>clip</item>
+ <item>color</item>
+ <item>dashed</item>
+ <item>fontsize</item>
+ <item>greenpart</item>
+ <item>infont</item>
+
+ <item>linecap</item>
+ <item>linejoin</item>
+ <item>llcorner</item>
+ <item>lrcorner</item>
+ <item>miterlimit</item>
+ <item>mpxbreak</item>
+
+ <item>prologues</item>
+ <item>redpart</item>
+ <item>setbounds</item>
+ <item>tracinglostchars</item>
+ <item>truecorners</item>
+ <item>ulcorner</item>
+
+ <item>urcorner</item>
+ <item>withcolor</item>
+ </list>
+
+ <!--Metafont primitives not found in MetaPost-->
+ <list name="notDefined">
+ <item>autorounding</item>
+ <item>chardx</item>
+
+ <item>chardy</item>
+ <item>fillin</item>
+ <item>granularity</item>
+ <item>hppp</item>
+ <item>proofing</item>
+ <item>smoothing</item>
+
+ <item>tracingedges</item>
+ <item>tracingpens</item>
+ <item>turningcheck</item>
+ <item>vppp</item>
+ <item>xoffset</item>
+ <item>yoffset</item>
+
+ </list>
+
+ <!--Keywords defined by plain.mp-->
+ <list name="mpMacro">
+ <item>ahangle</item>
+ <item>ahlength</item>
+ <item>background</item>
+ <item>bbox</item>
+
+ <item>bboxmargin</item>
+<!-- <item>beginfig</item> -->
+ <item>beveled</item>
+ <item>black</item>
+ <item>blue</item>
+ <item>buildcycle</item>
+ <item>butt</item>
+
+ <item>center</item>
+ <item>cutafter</item>
+ <item>cutbefore</item>
+ <item>cuttings</item>
+ <item>dashpattern</item>
+ <item>defaultfont</item>
+
+ <item>defaultpen</item>
+ <item>defaultscale</item>
+ <item>dotlabel</item>
+ <item>dotlabels</item>
+ <item>drawarrow</item>
+ <item>drawdblarrow</item>
+
+ <item>drawoptions</item>
+<!-- <item>endfig</item> -->
+ <item>evenly</item>
+<!-- <item>extra_beginfig</item> -->
+<!-- <item>extra_endfig</item> -->
+ <item>green</item>
+ <item>label</item>
+ <item>labeloffset</item>
+
+ <item>mitered</item>
+ <item>red</item>
+ <item>rounded</item>
+ <item>squared</item>
+ <item>thelabel</item>
+ <item>white</item>
+
+ <item>base_name</item>
+ <item>base_version</item>
+ <item>upto</item>
+ <item>downto</item>
+ <item>exitunless</item>
+ <item>relax</item>
+
+ <item>gobble</item>
+ <item>gobbled</item>
+ <item>interact</item>
+ <item>loggingall</item>
+ <item>tracingall</item>
+ <item>tracingnone</item>
+
+ <item>eps</item>
+ <item>epsilon</item>
+ <item>infinity</item>
+ <item>right</item>
+ <item>left</item>
+ <item>up</item>
+
+ <item>down</item>
+ <item>origin</item>
+ <item>quartercircle</item>
+ <item>halfcircle</item>
+ <item>fullcircle</item>
+ <item>unitsquare</item>
+
+ <item>identity</item>
+ <item>blankpicture</item>
+ <item>withdots</item>
+ <item>ditto</item>
+ <item>EOF</item>
+ <item>pensquare</item>
+
+ <item>penrazor</item>
+ <item>penspeck</item>
+ <item>whatever</item>
+<!-- <item>abs</item> -->
+ <item>round</item>
+<!-- <item>ceiling</item> -->
+ <item>byte</item>
+
+ <item>dir</item>
+ <item>unitvector</item>
+ <item>inverse</item>
+ <item>counterclockwise</item>
+ <item>tensepath</item>
+<!-- <item>mod</item> -->
+<!-- <item>div</item> -->
+
+<!-- <item>dotprod</item> -->
+ <item>takepower</item>
+ <item>direction</item>
+ <item>directionpoint</item>
+ <item>intersectionpoint</item>
+ <item>softjoin</item>
+ <item>incr</item>
+
+ <item>decr</item>
+ <item>reflectedabout</item>
+ <item>rotatedaround</item>
+ <item>rotatedabout</item>
+<!-- <item>min</item> -->
+<!-- <item>max</item> -->
+ <item>flex</item>
+
+ <item>superellipse</item>
+ <item>interpath</item>
+ <item>magstep</item>
+ <item>currentpen</item>
+ <item>currentpen_path</item>
+ <item>currentpicture</item>
+
+ <item>fill</item>
+ <item>draw</item>
+ <item>filldraw</item>
+ <item>drawdot</item>
+ <item>unfill</item>
+ <item>undraw</item>
+
+ <item>unfilldraw</item>
+ <item>undrawdot</item>
+ <item>erase</item>
+ <item>cutdraw</item>
+ <item>image</item>
+ <item>pickup</item>
+
+ <item>numeric_pickup</item>
+ <item>pen_lft</item>
+ <item>pen_rt</item>
+ <item>pen_top</item>
+ <item>pen_bot</item>
+ <item>savepen</item>
+
+ <item>clearpen</item>
+ <item>clear_pen_memory</item>
+ <item>lft</item>
+ <item>rt</item>
+ <item>top</item>
+ <item>bot</item>
+
+ <item>ulft</item>
+ <item>urt</item>
+ <item>llft</item>
+ <item>lrt</item>
+ <item>penpos</item>
+ <item>penstroke</item>
+
+ <item>arrowhead</item>
+ <item>makelabel</item>
+ <item>labels</item>
+ <item>penlabel</item>
+ <item>range</item>
+ <item>numtok</item>
+
+ <item>thru</item>
+ <item>clearxy</item>
+ <item>clearit</item>
+ <item>clearpen</item>
+ <item>pickup</item>
+ <item>shipit</item>
+
+ <item>bye</item>
+ <item>hide</item>
+ <item>stop</item>
+ <item>solve</item>
+<!-- <item>beginchar</item> -->
+ <item>blacker</item>
+ <item>capsule_def</item>
+
+ <item>change_width</item>
+ <item>define_blacker_pixels</item>
+ <item>define_corrected_pixels</item>
+ <item>define_good_x_pixels</item>
+ <item>define_good_y_pixels</item>
+ <item>define_horizontal_corrected_pixels</item>
+
+ <item>define_pixels</item>
+ <item>define_whole_blacker_pixels</item>
+ <item>define_whole_vertical_blacker_pixels</item>
+ <item>define_whole_vertical_pixels</item>
+<!-- <item>endchar</item> -->
+<!-- <item>extra_beginchar</item> -->
+<!-- <item>extra_endchar</item> -->
+ <item>extra_setup</item>
+
+ <item>font_coding_scheme</item>
+ <item>font_extra_space</item>
+ <item>font_identifier</item>
+ <item>font_normal_shrink</item>
+ <item>font_normal_space</item>
+ <item>font_normal_stretch</item>
+
+ <item>font_quad</item>
+ <item>font_size</item>
+ <item>font_slant</item>
+ <item>font_x_height</item>
+ <item>italcorr</item>
+ <item>labelfont</item>
+
+ <item>makebox</item>
+ <item>makegrid</item>
+ <item>maketicks</item>
+ <item>mode_def</item>
+ <item>mode_setup</item>
+ <item>o_correction</item>
+
+ <item>proofrule</item>
+ <item>proofrulethickness</item>
+ <item>rulepen</item>
+ <item>smode</item>
+ <item>cullit</item>
+ <item>currenttransform</item>
+
+ <item>gfcorners</item>
+ <item>grayfont</item>
+ <item>hround</item>
+ <item>imagerules</item>
+ <item>lowres_fix</item>
+ <item>nodisplays</item>
+
+ <item>notransforms</item>
+ <item>openit</item>
+ <item>proofoffset</item>
+ <item>screenchars</item>
+ <item>screenrule</item>
+ <item>screenstrokes</item>
+
+ <item>showit</item>
+ <item>slantfont</item>
+ <item>titlefont</item>
+ <item>unitpixel</item>
+ <item>vround</item>
+ <item>circmargin</item>
+
+ <item>defaultdx</item>
+ <item>defaultdy</item>
+ <item>boxit</item>
+ <item>boxjoin</item>
+ <item>bpath</item>
+ <item>circleit</item>
+
+ <item>drawboxed</item>
+ <item>drawboxes</item>
+ <item>drawunboxed</item>
+ <item>fixpos</item>
+ <item>fixsize</item>
+ <item>pic</item>
+
+ </list>
+
+ <!--We put all the delimiters here. They will be treated apart, for code folding-->
+ <list name="EnvDelimiters">
+ <item>beginchar</item>
+ <item>endchar</item>
+ <item>extra_beginchar</item>
+ <item>extra_endchar</item>
+
+ <item>beginlogochar</item>
+ <item>beginfig</item>
+ <item>endfig</item>
+ <item>extra_beginfig</item>
+ <item>extra_endfig</item>
+ </list>
+
+ <contexts>
+ <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+ <keyword String="mfBoolExp" attribute="BoolExp" context="#stay"/>
+ <keyword String="mfNumExp" attribute="NumExp" context="#stay"/>
+ <keyword String="mfInternal" attribute="Statement" context="#stay"/>
+ <keyword String="mfPairExp" attribute="Statement" context="#stay"/>
+ <keyword String="mfPathExp" attribute="Statement" context="#stay"/>
+ <keyword String="mfPenExp" attribute="Statement" context="#stay"/>
+
+ <keyword String="mfPicExp" attribute="Statement" context="#stay"/>
+ <keyword String="mfStringExp" attribute="Statement" context="#stay"/>
+ <keyword String="mfCommand" attribute="Statement" context="#stay"/>
+ <keyword String="mfType" attribute="Type" context="#stay"/>
+ <keyword String="mfStatement" attribute="Statement" context="#stay"/>
+ <keyword String="mfDefinition" attribute="Statement" context="#stay"/>
+ <keyword String="mfCondition" attribute="Conditional" context="#stay"/>
+ <keyword String="mfPrimitive" attribute="Statement" context="#stay"/>
+ <keyword String="mfMacro" attribute="Macro" context="#stay"/>
+
+ <keyword String="mpInternal" attribute="Statement" context="#stay"/>
+ <keyword String="mpMacro" attribute="Macro" context="#stay"/>
+
+ <DetectChar char="%" attribute="Comment" context="Comment"/>
+ <DetectChar char='"' attribute="String" context="string" beginRegion="String"/>
+ <RegExpr String="(\+|\-|\*|\/|\=|\:\=)" attribute="Operator" context="#stay"/>
+ <Detect2Chars char="." char1="." attribute="Operator" context="#stay"/>
+
+ <HlCOct attribute="Octal"/>
+ <HlCHex attribute="Hex"/>
+
+ <Float attribute="Float"/>
+ <Int attribute="Decimal"/>
+
+ <!--Metafont lengths-->
+ <RegExpr String="\b(bp|cc|cm|dd|in|mm|pc|pt)\b" attribute="Float" context="#stay"/>
+ <RegExpr String="\b-?\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+ <RegExpr String="\b-?\.\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+ <RegExpr String="\b-?\d+\.\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+
+ <!--Metafont coordinates, points, pathes-->
+
+ <RegExpr String="\b[xy]\d(\w|\')*" attribute="Variable" context="#stay"/>
+ <RegExpr String="\bz\d(\w|\')*" attribute="Variable" context="#stay"/>
+ <RegExpr String="\bp\d(\w|\')*" attribute="Variable" context="#stay"/>
+
+ <!--Special characters-->
+ <DetectChar char="$" attribute="Special" context="#stay"/>
+
+ <!--MetaPost has TeX inserts for typeset labels verbatimtex, btex, and etex will be treated as keywords-->
+ <RegExpr String="\b(verbatimtex|btex)\b" insensitive="1" attribute="Identifier" context="TeXMode" beginRegion="TeXblock"/>
+
+ <!--Here are some delimiters with code folding-->
+ <RegExpr String="\bbegin(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="block"/>
+ <RegExpr String="\bend(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="block"/>
+
+ <RegExpr String="\bextra_begin(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="block"/>
+ <RegExpr String="\bextra_end(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="block"/>
+
+ <RegExpr String="\b(def|vardef)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="defblock"/>
+ <RegExpr String="\benddef\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="defblock"/>
+
+ <RegExpr String="\bif\b" insensitive="1" attribute="Conditional" context="#stay" beginRegion="ifblock"/>
+ <RegExpr String="\bfi\b" insensitive="1" attribute="Conditional" context="#stay" endRegion="ifblock"/>
+ <RegExpr String="\b(for|forsuffixes|forever)\b" insensitive="1" attribute="Conditional" context="#stay" beginRegion="forblock"/>
+ <RegExpr String="\bendfor\b" insensitive="1" attribute="Conditional" context="#stay" endRegion="forblock"/>
+
+ </context>
+
+ <context name="string" attribute="String" lineEndContext="#stay">
+ <DetectIdentifier/>
+ <Detect2Chars char="\" char1='"' attribute="String" context="#stay"/>
+
+ <Detect2Chars char="\" char1="\" attribute="String" context="#stay"/>
+ <DetectChar char='"' attribute="String" context="#pop" endRegion="String"/>
+ </context>
+
+ <!--TeX mode : we just define generic TeX commands-->
+ <!--syntax from highlighting file latex.xml-->
+ <context name="TeXMode" attribute="Tex" lineEndContext="#stay">
+ <DetectChar char="\" attribute="Keyword" context="ContrSeq"/>
+ <DetectChar char="$" attribute="Math" context="MathMode" beginRegion="mathMode" />
+
+ <StringDetect String="\(" attribute="Math" context="MathMode" beginRegion="mathMode" />
+ <RegExpr String="\betex\b" insensitive="1" attribute="Identifier" context="#pop" endRegion="TeXblock"/>
+ </context>
+ <context name="ContrSeq" attribute="Keyword" lineEndContext="#pop">
+ <StringDetect String="verb*" attribute="Keyword" context="Verb"/>
+ <RegExpr String="verb(?=[^a-zA-Z])" attribute="Keyword" context="Verb"/>
+ <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+ <RegExpr String="[a-zA-Z]+(\+?|\*{0,3})" attribute="Keyword" context="#pop"/>
+ <RegExpr String="[^a-zA-Z]" attribute="Keyword" context="#pop" />
+
+ </context>
+ <context name="ToEndOfLine" attribute="Normal Text" lineEndContext="#pop">
+ </context>
+ <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
+ <RegExpr String="(.)" attribute="Normal Text" dynamic="true" context="VerbEnd" />
+ </context>
+ <context name="VerbEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+ <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+ <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+
+ <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+ </context>
+
+ <!-- math mode: starting with $ or \( -->
+ <context name="MathMode" attribute="Math" lineEndContext="#stay">
+ <StringDetect String="$$" attribute="Error" context="#stay" />
+ <DetectChar char="\" attribute="Keyword Mathmode" context="MathContrSeq"/>
+ <DetectChar char="$" attribute="Math" context="#pop" endRegion="mathMode" />
+ <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" endRegion="mathMode" />
+
+ <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+ </context>
+ <context name="MathContrSeq" attribute="Keyword Mathmode" lineEndContext="#pop">
+ <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+ <RegExpr String="[a-zA-Z]+\*?" attribute="Keyword Mathmode" context="#pop"/>
+ <RegExpr String="[^a-zA-Z]" attribute="Keyword Mathmode" context="#pop" />
+ </context>
+
+ <!-- comment -->
+ <context name="Comment" attribute="Comment" lineEndContext="#pop">
+
+ <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
+ <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+ </context>
+
+</contexts>
+ <itemDatas>
+ <itemData name="Normal Text" defStyleNum="dsNormal"/>
+ <itemData name="Keyword" defStyleNum="dsNormal" color="#800000" selColor="#60FFFF" bold="0" italic="0"/>
+ <itemData name="Keyword Mathmode" defStyleNum="dsNormal" color="#606000" selColor="#FFD0FF" bold="0" italic="0"/>
+ <itemData name="Comment" defStyleNum="dsComment"/>
+
+ <itemData name="Error" defStyleNum="dsAlert"/>
+ <itemData name="Math" defStyleNum="dsNormal" color="#00A000" selColor="#FF40FF" bold="0" italic="0"/>
+ <itemData name="TeX" defStyleNum="dsNormal"/>
+ <itemData name="String" defStyleNum="dsString"/>
+ <itemData name="Alert" defStyleNum="dsAlert"/>
+ <itemData name="Macro" defStyleNum="dsKeyword" color="#770000" selColor="#99FFFF" bold="0" italic="0"/>
+ <itemData name="Operator" defStyleNum="dsKeyword" color="#244CFF" bold="0"/>
+ <itemData name="Special" defStyleNum="dsKeyword" color="#008000" bold="0"/>
+ <itemData name="Conditional" defStyleNum="dsKeyword"/>
+
+ <itemData name="Statement" defStyleNum="dsNormal" color="#0000FF" selColor="#FFFF00" bold="0" italic="0"/>
+ <itemData name="BoolExp" defStyleNum="dsKeyword" italic="1" bold="0" color="#AA00AA" selColor="#FFFF00"/>
+ <itemData name="NumExp" defStyleNum="dsFunction"/>
+ <itemData name="Variable" defStyleNum="dsKeyword" color="#550022"/>
+ <itemData name="Identifier" defStyleNum="dsKeyword"/>
+ <itemData name="Type" defStyleNum="dsDataType"/>
+ <itemData name="Decimal" defStyleNum="dsDecVal"/>
+ <itemData name="Octal" defStyleNum="dsBaseN"/>
+ <itemData name="Hex" defStyleNum="dsBaseN"/>
+
+ <itemData name="Float" defStyleNum="dsFloat"/>
+ </itemDatas>
+ </highlighting>
+
+ <general>
+ <comments>
+ <comment name="singleLine" start="%"/>
+ </comments>
+ <keywords casesensitive="0" />
+
+ </general>
+</language>
+