mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07: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
|