Update runtime files
diff --git a/runtime/syntax/mf.vim b/runtime/syntax/mf.vim
index 3589e4d..d1faa19 100644
--- a/runtime/syntax/mf.vim
+++ b/runtime/syntax/mf.vim
@@ -1,26 +1,39 @@
-" Vim syntax file
-" Language: METAFONT
-" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
-" Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
-" Last Change: 2016 Oct 1
+vim9script
+
+# Vim syntax file
+# Language: METAFONT
+# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+# Former Maintainers: Andreas Scherer <andreas.scherer@pobox.com>
+# Latest Revision: 2022 Aug 12
if exists("b:current_syntax")
finish
endif
+# Deprecation warnings: to be removed eventually
+if exists("g:plain_mf_macros")
+ echomsg "[mf] g:plain_mf_macros is deprecated: use g:mf_plain_macros instead."
+endif
+if exists("g:plain_mf_modes")
+ echomsg "[mf] g:plain_mf_modes is deprecated: use g:mf_plain_modes instead."
+endif
+if exists("g:other_mf_macros")
+ echomsg "[mf] g:other_mf_macros is deprecated: use g:mf_other_macros instead."
+endif
+
syn iskeyword @,_
-" METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
-" Page 210: 'boolean expressions'
+# METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook'
+# Page 210: 'boolean expressions'
syn keyword mfBoolExp and charexists false known not odd or true unknown
-" Page 210: 'numeric expression'
+# Page 210: 'numeric expression'
syn keyword mfNumExp ASCII angle cosd directiontime floor hex length
syn keyword mfNumExp mexp mlog normaldeviate oct sind sqrt totalweight
syn keyword mfNumExp turningnumber uniformdeviate xpart xxpart xypart
syn keyword mfNumExp ypart yxpart yypart
-" Page 211: 'internal quantities'
+# Page 211: 'internal quantities'
syn keyword mfInternal autorounding boundarychar charcode chardp chardx
syn keyword mfInternal chardy charext charht charic charwd day designsize
syn keyword mfInternal fillin fontmaking granularity hppp jobname month
@@ -32,25 +45,25 @@
syn keyword mfInternal tracingtitles turningcheck vppp warningcheck
syn keyword mfInternal xoffset year yoffset
-" Page 212: 'pair expressions'
+# Page 212: 'pair expressions'
syn keyword mfPairExp of penoffset point postcontrol precontrol rotated
syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled
syn keyword mfPairExp zscaled
-" Page 213: 'path expressions'
+# Page 213: 'path expressions'
syn keyword mfPathExp atleast controls curl cycle makepath reverse
syn keyword mfPathExp subpath tension
-" Page 214: 'pen expressions'
+# Page 214: 'pen expressions'
syn keyword mfPenExp makepen nullpen pencircle
-" Page 214: 'picture expressions'
+# Page 214: 'picture expressions'
syn keyword mfPicExp nullpicture
-" Page 214: 'string expressions'
+# Page 214: 'string expressions'
syn keyword mfStringExp char decimal readstring str substring
-" Page 217: 'commands and statements'
+# Page 217: 'commands and statements'
syn keyword mfCommand addto also at batchmode contour cull delimiters
syn keyword mfCommand display doublepath dropping dump end errhelp
syn keyword mfCommand errmessage errorstopmode everyjob from interim
@@ -60,36 +73,36 @@
syn keyword mfCommand showstats showtoken showvariable special to withpen
syn keyword mfCommand withweight
-" Page 56: 'types'
+# Page 56: 'types'
syn keyword mfType boolean numeric pair path pen picture string
syn keyword mfType transform
-" Page 155: 'grouping'
+# Page 155: 'grouping'
syn keyword mfStatement begingroup endgroup
-" Page 165: 'definitions'
+# Page 165: 'definitions'
syn keyword mfDefinition def enddef expr primary primarydef secondary
syn keyword mfDefinition secondarydef suffix tertiary tertiarydef text
syn keyword mfDefinition vardef
-" Page 169: 'conditions and loops'
+# Page 169: 'conditions and loops'
syn keyword mfCondition else elseif endfor exitif fi for forever
syn keyword mfCondition forsuffixes if step until
-" Other primitives listed in the index
+# Other primitives listed in the index
syn keyword mfPrimitive charlist endinput expandafter extensible fontdimen
syn keyword mfPrimitive headerbyte inner input intersectiontimes kern
syn keyword mfPrimitive ligtable quote scantokens skipto
-" Implicit suffix parameters
+# Implicit suffix parameters
syn match mfSuffixParam "@#\|#@\|@"
-" These are just tags, but given their special status, we
-" highlight them as variables
+# These are just tags, but given their special status, we
+# highlight them as variables
syn keyword mfVariable x y
-" Keywords defined by plain.mf (defined on pp.262-278)
-if get(g:, "plain_mf_macros", 1)
+# Keywords defined by plain.mf (defined on pp.262-278)
+if get(g:, "mf_plain_macros", get(g:, "plain_mf_macros", 1))
syn keyword mfDef addto_currentpicture beginchar capsule_def
syn keyword mfDef change_width clear_pen_memory clearit clearpen
syn keyword mfDef clearxy culldraw cullit cutdraw
@@ -117,8 +130,8 @@
syn keyword mfVardef bot byte ceiling counterclockwise cutoff decr dir
syn keyword mfVardef direction directionpoint grayfont hround incr
syn keyword mfVardef interpath inverse labelfont labels lft magstep
- " Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5)
- " (METAFONT only)
+ # Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5)
+ # (METAFONT only)
syn keyword mfVardef makelabel max min nodot penlabels penpos
syn keyword mfVardef proofrulethickness round rt savepen slantfont solve
syn keyword mfVardef tensepath titlefont top unitvector vround whatever
@@ -130,24 +143,24 @@
syn keyword mfNewInternal infinity join_radius number_of_modes o_correction
syn keyword mfNewInternal pen_bot pen_lft pen_rt pen_top pixels_per_inch
syn keyword mfNewInternal screen_cols screen_rows tolerance
- " Predefined constants
+ # Predefined constants
syn keyword mfConstant base_name base_version blankpicture ditto down
syn keyword mfConstant fullcircle halfcircle identity left lowres origin
syn keyword mfConstant penspeck proof quartercircle right rulepen smoke
syn keyword mfConstant unitpixel unitsquare up
- " Other predefined variables
+ # Other predefined variables
syn keyword mfVariable aspect_ratio currentpen extra_beginchar
syn keyword mfVariable extra_endchar currentpen_path currentpicture
syn keyword mfVariable currenttransform d extra_setup h localfont mag mode
syn keyword mfVariable mode_name w
- " let statements:
+ # let statements:
syn keyword mfnumExp abs
syn keyword mfPairExp rotatedabout
syn keyword mfCommand bye relax
endif
-" By default, METAFONT loads modes.mf, too
-if get(g:, "plain_mf_modes", 1)
+# By default, METAFONT loads modes.mf, too
+if get(g:, "plain_mf_modes", get(g:, "mf_plain_modes", 1))
syn keyword mfConstant APSSixMed AgfaFourZeroZero AgfaThreeFourZeroZero
syn keyword mfConstant AtariNineFive AtariNineSix AtariSLMEightZeroFour
syn keyword mfConstant AtariSMOneTwoFour CItohEightFiveOneZero
@@ -228,36 +241,36 @@
syn keyword mfNewInternal blacker_min
endif
-" Some other basic macro names, e.g., from cmbase, logo, etc.
-if get(g:, "other_mf_macros", 1)
+# Some other basic macro names, e.g., from cmbase, logo, etc.
+if get(g:, "mf_other_macros", get(g:, "other_mf_macros", 1))
syn keyword mfDef beginlogochar
syn keyword mfDef font_setup
syn keyword mfPrimitive generate
endif
-" Numeric tokens
+# Numeric tokens
syn match mfNumeric "[-]\=\d\+"
syn match mfNumeric "[-]\=\.\d\+"
syn match mfNumeric "[-]\=\d\+\.\d\+"
-" METAFONT lengths
+# 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\)\#\="
-" String constants
+# String constants
syn match mfOpenString /"[^"]*/
syn region mfString oneline keepend start=+"+ end=+"+
-" Comments:
+# Comments:
syn keyword mfTodoComment contained TODO FIXME XXX DEBUG NOTE
syn match mfComment "%.*$" contains=mfTodoComment,@Spell
-" synchronizing
-syn sync maxlines=50
+# synchronizing
+syn sync maxlines=100
-" Define the default highlighting
+# Define the default highlighting
hi def link mfBoolExp Statement
hi def link mfNumExp Statement
hi def link mfPairExp Statement
@@ -290,6 +303,6 @@
hi def link mfConstant Constant
hi def link mfTodoComment Todo
-let b:current_syntax = "mf"
+b:current_syntax = "mf"
-" vim:sw=2
+# vim: sw=2 fdm=marker