summaryrefslogtreecommitdiffstats
path: root/runtime/doc/ft_mp.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/ft_mp.txt')
-rw-r--r--runtime/doc/ft_mp.txt151
1 files changed, 151 insertions, 0 deletions
diff --git a/runtime/doc/ft_mp.txt b/runtime/doc/ft_mp.txt
new file mode 100644
index 0000000..595bc02
--- /dev/null
+++ b/runtime/doc/ft_mp.txt
@@ -0,0 +1,151 @@
+*ft_mp.txt* For Vim version 9.0. Last change: 2022 Aug 12
+
+This is the documentation for the METAFONT and MetaPost filetype plugins.
+Unless otherwise specified, the commands, settings and mappings defined below
+apply equally to both filetypes.
+
+NOTE: the plugin requires +vim9script.
+
+==============================================================================
+CONTENTS *mp.vim* *ft-metapost*
+ *mf.vim* *ft-metafont*
+
+1. Introduction |ft-metapost-intro|
+2. Commands |ft-metapost-commands|
+3. Settings |ft-metapost-settings|
+4. Mappings |ft-metapost-mappings|
+
+==============================================================================
+ *ft-metapost-intro*
+ *ft-metafont-intro*
+Introduction ~
+This filetype plugin provides extensive support for editing METAFONT and
+MetaPost documents, including syntax coloring, indentation, and completion.
+
+Defining indentation rules for METAFONT and MetaPost code is tricky and
+somewhat subjective, because the syntax is quite liberal. The plugin uses some
+heuristics that work well most of the time, but in particular cases you may
+want to to override the automatic rules, so that the manually defined
+indentation is preserved by commands like `gg=G`.
+
+This can be achieved by appending `%>`, `%<`, `%=` or `%!` to a line to
+explicitly control the indentation of the next line. The `<` and `>` symbols
+may be repeated many times: for instance, `%>>` will cause the next line to be
+indented twice. Of course, `%<` means that the next line should be
+de-indented; `%=` sets the indentation of the next line to be equal to the
+indentation of the current line; and `%!` means that the indentation of the
+next line should not change from whatever it has been manually set.
+
+For example, this is the default indentation of a simple macro:
+>
+ def foo =
+ makepen(
+ subpath(T-n,t) of r
+ shifted .5down
+ --subpath(t,T) of r shifted .5up -- cycle
+ )
+ withcolor black
+ enddef
+<
+By adding the special comments, the indentation can be adjusted arbitrarily:
+>
+ def foo =
+ makepen(
+ subpath(T-n,t) of r %>
+ shifted .5down %>
+ --subpath(t,T) of r shifted .5up -- cycle %<<<
+ )
+ withcolor black
+ enddef
+<
+ *ft-metapost-commands*
+Commands ~
+ *:FixBeginfigs*
+Renumber beginfig() blocks in the current buffer so that the n-th figure has
+number n. MetaPost only.
+
+ *ft-metapost-settings*
+ *ft-metafont-settings*
+Settings ~
+ *'g:mf_other_macros'*
+Highlight some other basic macro names, e.g., from cmbase, logo, etc. This is
+set to 1 by default in METAFONT buffers, and it is set to 0 by default in
+MetaPost buffers.
+
+ *'g:mf_plain_macros'*
+Highlight keywords defined by plain.mf. This is set to 1 by default in
+METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
+
+ *'g:mf_plain_modes'*
+Highlight keywords defined by modes.mf. This is set to 1 by default in
+METAFONT buffers, and it is set to 0 by default in MetaPost buffers.
+
+ *'g:mp_close_tag'*
+Define additional keywords that end indented blocks. For instance, if you
+define:
+>
+ g:mp_close_tag = ['\<endfoo\>']
+<
+any line starting with `endfoo` will be de-indented compared to its previous
+line.
+>
+ g:mp_close_tag = []
+<
+ *'b:mp_metafun'*
+ *'g:mp_metafun'*
+If set to 1, highlight ConTeXt's MetaFun keywords. MetaPost only.
+>
+ g:mp_metafun = 0
+<
+ *'g:mp_mfplain_macros'*
+Highlight keywords defined by mfplain.mp. MetaPost only.
+>
+ g:mp_mfplain_macros = 1
+<
+ *'g:mp_open_tag'*
+Define additional keywords that start indented blocks. For instance, if you
+define:
+>
+ g:mp_open_tag = ['\<beginfoo\>']
+<
+the line following `beginfoo` will be indented.
+>
+ g:mp_open_tag = []
+<
+ *'g:mp_other_macros'*
+Highlight keywords defined by all base macro packages (boxes, rboxes, format,
+graph, marith, sarith, string, TEX). This option affects only MetaPost
+buffers.
+>
+ g:mp_other_macros = 1
+<
+ *'g:mp_plain_macros'*
+Highlight keywords defined by plain.mp. MetaPost only.
+>
+ g:mp_plain_macros = 1
+<
+ *'g:no_mp_maps'*
+ *'g:no_mf_maps'*
+When set, do not define any mapping in buffers with the corresponding
+filetype.
+>
+ g:no_mp_maps = 0
+ g:no_mf_maps = 0
+<
+ *ft-metapost-mappings*
+ *ft-metafont-mappings*
+Mappings ~
+
+]] [count] vardefs, macros or figures forward.
+
+[[ [count] vardefs, macros or figures backward.
+
+][ [count] end of vardefs, macros or figures forward.
+
+[] [count] end of vardefs, macros or figures backward.
+
+]} [count] end of blocks (fi, endfor, endgroup) forward.
+
+[{ [count] begin of blocks (if, for, begingroup) backward.
+
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl: