summaryrefslogtreecommitdiff
path: root/macros/context/contrib/context-vim
diff options
context:
space:
mode:
Diffstat (limited to 'macros/context/contrib/context-vim')
-rw-r--r--macros/context/contrib/context-vim/VERSION2
-rw-r--r--macros/context/contrib/context-vim/doc/context/third/vim/vim.txt99
-rw-r--r--macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii (renamed from macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex)4
-rw-r--r--macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv126
-rw-r--r--macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv63
-rw-r--r--macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex78
-rw-r--r--macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css415
7 files changed, 686 insertions, 101 deletions
diff --git a/macros/context/contrib/context-vim/VERSION b/macros/context/contrib/context-vim/VERSION
index 245e15befa..ee81786fef 100644
--- a/macros/context/contrib/context-vim/VERSION
+++ b/macros/context/contrib/context-vim/VERSION
@@ -1 +1 @@
-2020.06.25
+2020.06.29
diff --git a/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt b/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt
index 88bc2b9dc6..12c5d10a07 100644
--- a/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt
+++ b/macros/context/contrib/context-vim/doc/context/third/vim/vim.txt
@@ -37,6 +37,7 @@ Table of Contents
* [Name (and location) of the VIM executable](#name-and-location-of-the-vim-executable)
* [Defining a new colorscheme](#defining-a-new-colorscheme)
* [Modifying an existing color scheme](#modifying-an-existing-color-scheme)
+* [XML export](#xml-export)
* [A bit of a history](#a-bit-of-a-history)
@@ -69,30 +70,30 @@ standalone, you can install the module using
Depending on your TeX distribution, you may already have the module.
To verify, check if
- kpsewhich t-vim.tex
+ luatools t-vim.tex
returns a meaningful path. If not, you have to manually install the module.
Download the latest version of the `filter` and `vim` modules from
[http://github.com/adityam/filter/downloads](http://github.com/adityam/filter/downloads)
and unzip them either `$TEXMFHOME` or `$TEXMFLOCAL`. Run
- mktexlsr
+ mtxrun --generate
and
- mtxrun --generate
+ mktexlsr
-to refresh the TeX file database (for MkII and MkIV, respectively). If
+to refresh the TeX file database (for MkIV and MkII, respectively). If
everything went well
- kpsewhich t-vim
+ luatools t-vim
will return the path where you stored the file.
Unfortunately, that is not enough. For the module to work, TeX must be able to
call an external program. This feature is a potential security risk and is
-disabled by default on most TeX distributions. To enable this feature, you must
-set
+disabled by default on most TeX distributions. To enable this feature in MkII,
+you must set
shell_escape=t
@@ -297,9 +298,12 @@ If you want every fifth line to be numbered, use
Standard options for line numbering
-----------------------------------
-**Note**: These options can only be set using `\definevimtyping[...][...]` or
-`\setupvimtyping[...][...]`. They do not work when used with
-`\start<vimtyping>`.
+**Note**: Linenumbering options can only be set using `\definevimtyping[...][...]`
+or `\setupvimtyping[...][...]`. They do not work when used with
+`\start<vimtyping>`. All the line numbers on a given page have the same
+properties. So, if you change these properties in the middle of the page, it
+will effect all the listings on that page, _even those defined earlier!_
+
- To change the color or style of the numbers, use the `numbercolor=...` and
`numberstyle=...` options. By default `numbercolor` is not set, while
@@ -971,6 +975,81 @@ typeset in bold red, we can use:
[color=red, style=bold]
\stopcolorscheme
```
+XML Export
+----------
+
+The vim module provides a basic support for XML export. If the user-document
+contains
+
+ \setupbackend[export=yes]
+
+or other valid options to `export` such as `export=xml`, then the vim typing
+environments are exported as well. For example,
+
+ \definevimtyping[PYTHON][syntax=python]
+ \startPYTHON
+ # Python program listing
+ def foobar
+ print("Hello World")
+ \stopPYTHON
+
+
+is exported as
+
+ <vimtyping detail="pscolor">
+ <verbatimline><syntaxgroup detail="vimComment"># Python program listing</syntaxgroup></verbatimline>
+ <verbatimline><syntaxgroup detail="vimStatement">def</syntaxgroup> <syntaxgroup detail="vimFunction">foobar</syntaxgroup></verbatimline>
+ <verbatimline> <syntaxgroup detail="vimFunction">print</syntaxgroup>(<syntaxgroup detail="vimString">"</syntaxgroup><syntaxgroup detail="vimString">Hello World</syntaxgroup><syntaxgroup detail="vimString">"</syntaxgroup>)</verbatimline>
+ </vimtyping>
+
+The name of the exported envionment is `vimtyping`.
+
+Inline environments such as
+
+ \definevimtyping[PYTHON][syntax=python]
+ \inlinePYTHON{print("Hello World")}
+
+is exported as
+
+ <inlinevimtyping detail="pscolor"><verbatimline><syntaxgroup detail="vimFunction">print</syntaxgroup>(<syntaxgroup detail="vimString">"</syntaxgroup><syntaxgroup detail="vimString">Hello World</syntaxgroup><syntaxgroup detail="vimString">"</syntaxgroup>)</verbatimline></inlinevimtyping>
+
+The name of the exported envionment is `inlinevimtyping`.
+
+In both the display and inline environments, the name of the programming
+language (value of the `syntax` key) is
+not exported since it is not needed to display the parse output.
+Instead the name of the colorscheme (value of the `alternative` key) is
+exported as the parameter `detail` of `vimtyping`. Each line is exported as a
+`verbatimline`. Each syntaxgroup is exported as `<syntaxgroup detail="...">`.
+The value of `defail` equals to the name of the syntax highlighting group
+_prepended with `vim`_. The name is prepended with `vim` to avoid name clashes
+with other elements in the exported XML. Strictly speaking this is not
+necessary, but it does make it easier to write CSS selectors.
+
+The module comes with a CSS file with default mappings for the two
+colorschemes that are provided with the module (`pscolor` and
+`blackandwhite`). This is meant as a simple solution which gives approximately
+the same output as the PDF file. To use this CSS file, add
+
+ \setupexport[cssfile=\vimtypingcssfile]
+
+If you already have other values for `cssfile`, then use:
+
+ \setupexport[cssfile={...,...,\vimtypingcssfile}]
+
+Note that the macro `\vimtypingcssfile` is defined in the vim module, so the
+above line has to come after the `vim` module has been loaded.
+
+If you make changes to the default colorschemes, define colorschemes of your
+own, or want to tweak the visual appearance of the output, you need to tweak
+the default CSS file to suit your needs. It is suggested that you copy the
+default css file and tweak it. You can find the location of the default CSS
+file using
+
+ luatools vimtyping-default.css
+
+Copy it under a different name and tweak it as desired.
+
A bit of a history
------------------
diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii
index 23fb1b7593..b13a902af1 100644
--- a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex
+++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkii
@@ -32,8 +32,6 @@
\installparameterhandler \syntaxgroup@namespace \syntaxgroup@id
\installsetuphandler \syntaxgroup@namespace \syntaxgroup@id
-\doifmode{\s!mkiv}
- {\installstyleandcolorhandler \syntaxgroup@namespace \syntaxgroup@id}
\def\m!syntaxgroup{t-syntax-group}
@@ -99,14 +97,12 @@
\iftracesyntaxgroups
\syntaxgroup@show_values
\fi
- \doifmode{\s!mkiv}{\dostarttagged\t!syntaxgroup{#1}}
\syntaxgroupparameter\c!command
{
\externalfilter@attributes_start\syntaxgroup@id\c!style\c!color
#2
\externalfilter@attributes_stop
}
- \doifmode{\s!mkiv}{\dostoptagged}
\syntaxgroupparameter\c!after
\endgroup
\stoptexdefinition
diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv
new file mode 100644
index 0000000000..564490ee26
--- /dev/null
+++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv
@@ -0,0 +1,126 @@
+%D \module
+%D [ file=t-syntax-groups,
+%D version=2020.06.29,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Syntax highlighting support,
+%D author=Aditya Mahajan,
+%D date=\currentdate,
+%D copyright=Aditya Mahajan,
+%D email=adityam <at> ieee <dot> org,
+%D license=Simplified BSD License]
+
+\writestatus{loading}{Syntax highlighting groups (ver: 2020.06.29)}
+
+\startmodule [syntax-group]
+\usemodule [module-catcodes]
+
+\unprotectmodulecatcodes
+
+\def\colorscheme@name {}
+
+\def\syntaxgroup@id {syntaxgroup}
+\def\syntaxgroup@namespace {@@@@\syntaxgroup@id}
+\def\syntaxgroup@name {}
+
+\edef\t!vimsyntaxgroup {\syntaxgroup@id}
+\setelementbackendtag[\t!vimsyntaxgroup]
+\setelementnature [\t!vimsyntaxgroup][inline]
+
+
+\installparameterhandler \syntaxgroup@namespace \syntaxgroup@id
+\installsetuphandler \syntaxgroup@namespace \syntaxgroup@id
+\installstyleandcolorhandler \syntaxgroup@namespace \syntaxgroup@id
+
+\def\m!syntaxgroup{t-syntax-group}
+
+\def\definesyntaxgroup
+ {\dodoubleargument\syntaxgroup@define}
+
+\starttexdefinition syntaxgroup@define [#1][#2]
+ % #1 list name
+ % #2 options
+ \doifassignmentelse{#2}
+ {
+ \def\syntaxgroup@get_parameters##1%
+ {
+ \edef\syntaxgroup@name {\colorscheme@name##1}
+ \setupsyntaxgroup[\syntaxgroup@name]
+ [\s!parent=\syntaxgroup@namespace,\c!color=,\c!style=,\c!command=,#2]
+ \doifsomething{\syntaxgroupparameter\c!color}
+ {
+ \expanded{\definecolor[\syntaxgroup@namespace-##1-color]
+ [\syntaxgroupparameter\c!color]}
+ \setupsyntaxgroup[\syntaxgroup@name][\s!parent=\syntaxgroup@namespace,\c!color=\syntaxgroup@namespace-##1-color]
+ }
+ }
+ }{
+ \def\syntaxgroup@get_parameters##1%
+ {
+ \edef\syntaxgroup@name {\colorscheme@name##1}
+ \expanded{\setupsyntaxgroup[\syntaxgroup@name]
+ [\c!color=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!color,
+ \c!style=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!style,
+ \c!command=\namedsyntaxgroupparameter{\colorscheme@name#2}\c!command,
+ ]}
+
+ % In MkII, \expanded messes up the definition of \currentsyntaxgroup
+ \def\currentsyntaxgroup {\syntaxgroup@name}
+ }
+ }
+
+ \processcommalist[#1]\syntaxgroup@get_parameters
+\stoptexdefinition
+
+\def\startcolorscheme%
+ {\dosingleargument\colorscheme@start}
+
+\starttexdefinition colorscheme@start [#1]
+ \pushmacro\colorscheme@name
+ \setcolorscheme{#1}
+ %\setupsyntaxgroup[\c!color=,\c!style=,\c!command=]
+\stoptexdefinition
+
+\def\stopcolorscheme
+ {\popmacro\colorscheme@name}
+
+\def\setcolorscheme#1%
+ {\edef\colorscheme@name{#1}}
+
+\starttexdefinition syntaxgroup [#1]#2
+ % #1 = style
+ % #2 = content
+ \begingroup
+ \edef\syntaxgroup@name{\colorscheme@name#1}%
+ \syntaxgroupparameter\c!before
+ \iftracesyntaxgroups
+ \syntaxgroup@show_values
+ \fi
+ \dostarttagged\t!vimsyntaxgroup{vim#1}
+ \syntaxgroupparameter\c!command
+ {
+ \externalfilter@attributes_start\syntaxgroup@id\c!style\c!color
+ #2
+ \externalfilter@attributes_stop
+ }
+ \dostoptagged
+ \syntaxgroupparameter\c!after
+ \endgroup
+\stoptexdefinition
+
+%D Tracing macros
+
+\newif\iftracesyntaxgroups
+\let\tracesyntaxgroups\tracesyntaxgroupstrue
+
+\def\currentsyntaxgroup {\syntaxgroup@name}
+
+\starttexdefinition syntaxgroup@show_values
+ \writestatus\m!syntaxgroup{color scheme : \colorscheme@name}
+ \writestatus\m!syntaxgroup{current group: \syntaxgroup@name}
+ \writestatus\m!syntaxgroup{command : \syntaxgroupparameter\c!command}
+ \writestatus\m!syntaxgroup{style : \syntaxgroupparameter\c!style}
+ \writestatus\m!syntaxgroup{color : \syntaxgroupparameter\c!color}
+\stoptexdefinition
+
+\protectmodulecatcodes
+\stopmodule
diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv
index a056730174..13786bba29 100644
--- a/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv
+++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-syntax-highlight,
-%D version=2018.08.10,
+%D version=2020.06.29,
%D title=\CONTEXT\ User Module,
%D subtitle=Code syntax highlighting,
%D author=Aditya Mahajan,
@@ -9,7 +9,7 @@
%D email=adityam <at> ieee <dot> org,
%D license=Simplified BSD License]
-\writestatus{loading}{Code syntax highlighting (ver: 2018.08.10)}
+\writestatus{loading}{Code syntax highlighting (ver: 2020.06.29)}
\startmodule [syntax-highlight]
\usemodule [syntax-groups]
@@ -36,32 +36,37 @@
\appendtoks
\defineexternalfilter[\currentsyntaxhighlighting]
- [\s!parent=\????syntaxhighlighting\currentexternalfilter,\c!taglabel=\vimtyping@id]%
+ [\s!parent=\????syntaxhighlighting\currentexternalfilter,
+ \c!taglabel=\vimtyping@id,
+ \c!tagdetail={\externalfilterparameter\c!alternative},
+ ]%
\normalexpanded{\definelinenumbering [\currentsyntaxhighlighting]}%
\setevalue{type\currentsyntaxhighlighting file}{\getvalue{process\currentsyntaxhighlighting file}}%
\to\everydefinesyntaxhighlighting
+\define[1]\syntaxhighlighting@set_linenumbers
+ {\def\syntaxhighlighting@linenumbering{\getvalue{current#1}}%
+ \def\syntaxhighlighting@parameter{\getvalue{#1parameter}}%
+ \normalexpanded{\setuplinenumbering[\syntaxhighlighting@linenumbering]
+ [
+ \c!method=\syntaxhighlighting@parameter{\c!number\c!method},
+ \c!conversion=\syntaxhighlighting@parameter\c!numberconversion,
+ \c!location=\syntaxhighlighting@parameter{\c!number\c!location},
+ \c!style=\syntaxhighlighting@parameter\c!numberstyle,
+ \c!color=\syntaxhighlighting@parameter\c!numbercolor,
+ \c!width=\syntaxhighlighting@parameter{\c!number\c!width},
+ \c!left=\syntaxhighlighting@parameter{\c!number\c!left},
+ \c!right=\syntaxhighlighting@parameter{\c!number\c!right},
+ \c!command=\syntaxhighlighting@parameter\c!numbercommand,
+ \c!distance=\syntaxhighlighting@parameter{\c!number\c!distance},
+ \c!align=\syntaxhighlighting@parameter{\c!number\c!align},
+ ]}}
+
\appendtoks
- % \externalfitlterparameter does not work, so it is better to use
- % \syntaxhighlighting parameter.
- \normalexpanded{\setuplinenumbering[\currentsyntaxhighlighting]
- [
- \c!method=\syntaxhighlightingparameter{\c!number\c!method},
- \c!conversion=\syntaxhighlightingparameter\c!numberconversion,
- \c!location=\syntaxhighlightingparameter{\c!number\c!location},
- \c!style=\syntaxhighlightingparameter\c!numberstyle,
- \c!color=\syntaxhighlightingparameter\c!numbercolor,
- \c!width=\syntaxhighlightingparameter{\c!number\c!width},
- \c!left=\syntaxhighlightingparameter{\c!number\c!left},
- \c!right=\syntaxhighlightingparameter{\c!number\c!right},
- \c!command=\syntaxhighlightingparameter\c!numbercommand,
- \c!distance=\syntaxhighlightingparameter{\c!number\c!distance},
- \c!align=\syntaxhighlightingparameter{\c!number\c!align},
- ]}%
+ \syntaxhighlighting@set_linenumbers\syntaxhighlighting@id
\to\everysetupsyntaxhighlighting
\def\syntaxhighlighting@id {syntaxhighlighting}
-\edef\t!syntaxhighlighting {\syntaxhighlighting@id}
%D Helper macro
@@ -111,7 +116,7 @@
\stoptexdefinition
\starttexdefinition syntaxhighlighting@linenumbering_start
- \doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes
+ \doifinsetelse{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes
{\let\SYNBOL=\syntaxhighlighting_begin_number_lines
\let\SYNEOL=\syntaxhighlighting_end_number_lines
\startlinenumbering
@@ -122,24 +127,34 @@
\c!step=\externalfilterparameter{\c!number\c!step},
\c!continue=\externalfilterparameter{\c!number\c!continue},
]}
- \dostarttagged\t!syntaxhighlighting\colorscheme@name
+ {\let\SYNBOL=\syntaxhighlighting_begin_lines
+ \let\SYNEOL=\syntaxhighlighting_end_lines}
\stoptexdefinition
\starttexdefinition syntaxhighlighting@linenumbering_stop
- \dostoptagged
\doifinset{\externalfilterparameter\c!numbering}\syntaxhighlighting@yes
{\stoplinenumbering}
\stoptexdefinition
\newcount\nofsyntaxhighlightinglines
+\starttexdefinition syntaxhighlighting_begin_lines
+ \dostarttaggednodetail\t!verbatimline
+\stoptexdefinition
+
+\starttexdefinition syntaxhighlighting_end_lines
+ \dostoptagged
+\stoptexdefinition
+
\starttexdefinition syntaxhighlighting_begin_number_lines
\global\advance\nofsyntaxhighlightinglines\plusone
+ \dostarttaggednodetail\t!verbatimline
\attribute\verbatimlineattribute\nofsyntaxhighlightinglines
\stoptexdefinition
\starttexdefinition syntaxhighlighting_end_number_lines
- \attribute\verbatimlineattribute\attributeunsetvalue
+ \attribute\verbatimlineattribute\attributeunsetvalue
+ \dostoptagged
\stoptexdefinition
diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex b/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex
index 2ea93198c4..3cb8e31089 100644
--- a/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex
+++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-vim,
-%D version=2020.05.17,
+%D version=2020.06.29,
%D title=\CONTEXT\ User Module,
%D subtitle=Vim syntax highlighting,
%D author=Aditya Mahajan,
@@ -9,7 +9,7 @@
%D email=adityam <at> ieee <dot> org,
%D license=Simplified BSD License]
-\writestatus{loading}{Vim syntax highlighting (ver: 2020.05.17)}
+\writestatus{loading}{Vim syntax highlighting (ver: 2020.06.29)}
\startmodule [vim]
\usemodule [filter] % loads module catcodes
@@ -31,6 +31,13 @@
\installparameterhandler \vimtyping@namespace \vimtyping@id
\installsetuphandler \vimtyping@namespace \vimtyping@id
+\appendtoks
+ % \setupvimtyping[...][...] does not call
+ % \setupsyntaxhighlighting[...][...],
+ % So, the line numbering options are not reset. Reset them explicitly here
+ \syntaxhighlighting@set_linenumbers\vimtyping@id
+\to\everysetupvimtyping
+
\def\definevimtyping
{\dodoubleargument\vimtyping@define}
@@ -43,11 +50,16 @@
% Mode to testing the dev version of 2context script.
\doifmodeelse{vim-dev,dev-vim}
- {\def\vimtyping@script_name{2context.vim}}
+ {\def\vimtyping@script_name{2context.vim}%
+ \doifmode\s!mkiv{\def\vimtyping@css_name{vimtyping-default.css}}}
{\doifmodeelse\s!mkiv
- {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}}
+ {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}%
+ \ctxlua{context.setvalue("vimtyping@css_name",
+ resolvers.resolve("full:vimtyping-default.css"))}}
{\def\vimtyping@script_name{kpse:2context.vim}}}
+\def\vimtypingcssfile{\vimtyping@css_name}
+
\def\vimtyping@filter_command
{\externalfilterparameter\c!vimcommand\space
-u \vimrc_filename\space % read global config file
@@ -258,7 +270,6 @@
[\c!color={h=800000},
\c!command=\vimtodoframed]
-
\definesyntaxgroup
[Error]
[\c!color={h=c03000}]
@@ -268,11 +279,6 @@
[\c!color={h=6a5acd},
\c!command=\underbar]
- \definesyntaxgroup
- [Todo]
- [\c!color={h=800000},
- \c!command=\vimtodoframed]
-
\setups{vim-minor-groups}
\definesyntaxgroup
@@ -324,58 +330,6 @@
\setups{vim-minor-groups}
\stopcolorscheme
-
-\startcolorscheme[kate]
- % Temporary definition... will change
- % . kw dsKeyword
- % . dt dsDataType
- % . dv dsDecVal
- % . bn dsBaseN
- % . fl dsFloat
- % . ch dsChar
- % . st dsString
- % . co dsComment
- % . ot dsOthers
- % . al dsAlert
- % . fu dsFunction
- % . re dsRegionMarker
- % . er dsError
- \definesyntaxgroup
- [kw]
- [\c!color={h=007020}, \c!style=bold]
-
- \definesyntaxgroup
- [dt]
- [\c!color={h=902000}]
-
- \definesyntaxgroup
- [dv, bn, fl]
- [\c!color={h=40a070}]
-
- \definesyntaxgroup
- [ch, st]
- [\c!color={h=4070a0}]
-
- \definesyntaxgroup
- [co]
- [\c!color={h=60a0b0}, \c!style=italic]
-
- \definesyntaxgroup
- [ot]
- [\c!color={h=007020}]
-
- \definesyntaxgroup
- [al, er]
- [\c!color=red, \c!style=bold]
-
- \definesyntaxgroup
- [fu]
- [\c!color={h=06287e}]
-
- \definesyntaxgroup
- [re]
-
-\stopcolorscheme
\protectmodulecatcodes
\stopmodule
diff --git a/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css b/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css
new file mode 100644
index 0000000000..e1eeb7d89d
--- /dev/null
+++ b/macros/context/contrib/context-vim/tex/context/third/vim/vimtyping-default.css
@@ -0,0 +1,415 @@
+/*
+ author : Aditya Mahajan and Christoph Hintermüller,
+ license : Simplfied BSD License,
+ version : 2020.06.29
+*/
+
+/* TODO:
+ * Inline environments
+ * Export of TODO has an extra space
+ * Line numbering in the margin
+ */
+
+vimtyping,
+.vimtyping
+{
+ font-family:monospace;
+ display:block;
+ white-space:pre-wrap;
+}
+
+inlinevimtyping,
+.inlinevimtyping
+{
+ font-family:monospace;
+ display:inline;
+ white-space:pre-wrap;
+}
+
+
+vimtyping verbatimline,
+inlinevimtyping verbatimline,
+.vimtyping .verbatimline,
+.inlinevimtyping .verbatimline
+{
+ display:inline;
+ white-space:pre-wrap;
+}
+
+vimtyping syntaxgroup,
+inlinevimtyping syntaxgroup,
+.vimtyping .syntaxgroup,
+.inlinevimtyping .syntaxgroup
+{
+ display:inline;
+}
+
+/* `pscolor` color scheme */
+vimtyping[detail=pscolor] syntaxgroup[defail=vimConstant],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimConstant],
+.vimtyping.pscolor .syntaxgroup.vimConstant,
+.inlinevimtyping.pscolor .syntaxgroup.vimConstant,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimString],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimString],
+.vimtyping.pscolor .syntaxgroup.vimString,
+.inlinevimtyping.pscolor .syntaxgroup.vimString,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCharacter],
+.vimtyping.pscolor .syntaxgroup.vimCharacter,
+.inlinevimtyping.pscolor .syntaxgroup.vimCharacter,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimBoolean],
+.vimtyping.pscolor .syntaxgroup.vimBoolean,
+.inlinevimtyping.pscolor .syntaxgroup.vimBoolean,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimFloat],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFloat],
+.vimtyping.pscolor .syntaxgroup.vimFloat,
+.inlinevimtyping.pscolor .syntaxgroup.vimFloat
+{
+ color:#007068;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimNumber],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimNumber],
+.vimtyping.pscolor .syntaxgroup.vimNumber,
+.inlinevimtyping.pscolor .syntaxgroup.vimNumber
+{
+ color:#907000;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIdentifier],
+.vimtyping.pscolor .syntaxgroup.vimIdentifier,
+.inlinevimtyping.pscolor .syntaxgroup.vimIdentifier,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimFunction],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimFunction],
+.vimtyping.pscolor .syntaxgroup.vimFunction,
+.inlinevimtyping.pscolor .syntaxgroup.vimFunction
+{
+ color:#a030a0;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimStatement],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStatement],
+.vimtyping.pscolor .syntaxgroup.vimStatement,
+.inlinevimtyping.pscolor .syntaxgroup.vimStatement,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimCondition],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimCondition],
+.vimtyping.pscolor .syntaxgroup.vimCondition,
+.inlinevimtyping.pscolor .syntaxgroup.vimCondition,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimRepeat],
+.vimtyping.pscolor .syntaxgroup.vimRepeat,
+.inlinevimtyping.pscolor .syntaxgroup.vimRepeat,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimLabel],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimLabel],
+.vimtyping.pscolor .syntaxgroup.vimLabel,
+.inlinevimtyping.pscolor .syntaxgroup.vimLabel,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimOperator],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimOperator],
+.vimtyping.pscolor .syntaxgroup.vimOperator,
+.inlinevimtyping.pscolor .syntaxgroup.vimOperator,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimKeyword],
+.vimtyping.pscolor .syntaxgroup.vimKeyword,
+.inlinevimtyping.pscolor .syntaxgroup.vimKeyword,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimException],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimException],
+.vimtyping.pscolor .syntaxgroup.vimException,
+.inlinevimtyping.pscolor .syntaxgroup.vimException
+{
+ color:#2060a8;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreProc],
+.vimtyping.pscolor .syntaxgroup.vimPreProc,
+.inlinevimtyping.pscolor .syntaxgroup.vimPreProc,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimInclude],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimInclude],
+.vimtyping.pscolor .syntaxgroup.vimInclude,
+.inlinevimtyping.pscolor .syntaxgroup.vimInclude,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimDefine],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDefine],
+.vimtyping.pscolor .syntaxgroup.vimDefine,
+.inlinevimtyping.pscolor .syntaxgroup.vimDefine,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimMacro],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimMacro],
+.vimtyping.pscolor .syntaxgroup.vimMacro,
+.inlinevimtyping.pscolor .syntaxgroup.vimMacro,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimPreCondit],
+.vimtyping.pscolor .syntaxgroup.vimPreCondit,
+.inlinevimtyping.pscolor .syntaxgroup.vimPreCondit
+{
+ color:#009030;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimType],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimType],
+.vimtyping.pscolor .syntaxgroup.vimType,
+.inlinevimtyping.pscolor .syntaxgroup.vimType,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStorageClass],
+.vimtyping.pscolor .syntaxgroup.vimStorageClass,
+.inlinevimtyping.pscolor .syntaxgroup.vimStorageClass,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimStructure],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimStructure],
+.vimtyping.pscolor .syntaxgroup.vimStructure,
+.inlinevimtyping.pscolor .syntaxgroup.vimStructure,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTypedef],
+.vimtyping.pscolor .syntaxgroup.vimTypedef,
+.inlinevimtyping.pscolor .syntaxgroup.vimTypedef
+{
+ color:#0850a0;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecial],
+.vimtyping.pscolor .syntaxgroup.vimSpecial,
+.inlinevimtyping.pscolor .syntaxgroup.vimSpecial,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialChar],
+.vimtyping.pscolor .syntaxgroup.vimSpecialChar,
+.inlinevimtyping.pscolor .syntaxgroup.vimSpecialChar,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDelimiter],
+.vimtyping.pscolor .syntaxgroup.vimDelimiter,
+.inlinevimtyping.pscolor .syntaxgroup.vimDelimiter,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimDebug],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimDebug],
+.vimtyping.pscolor .syntaxgroup.vimDebug,
+.inlinevimtyping.pscolor .syntaxgroup.vimDebug
+{
+ color:#907000;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimComment],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimComment],
+.vimtyping.pscolor .syntaxgroup.vimComment,
+.inlinevimtyping.pscolor .syntaxgroup.vimComment,
+vimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimSpecialComment],
+.vimtyping.pscolor .syntaxgroup.vimSpecialComment,
+.inlinevimtyping.pscolor .syntaxgroup.vimSpecialComment
+{
+ color:#606000;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimIgnore],
+.vimtyping.pscolor .syntaxgroup.vimIgnore,
+.inlinevimtyping.pscolor .syntaxgroup.vimIgnore
+{
+ color:unset;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimTodo],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimTodo],
+.vimtyping.pscolor .syntaxgroup.vimTodo,
+.inlinevimtyping.pscolor .syntaxgroup.vimTodo
+{
+ color:#800000;
+ background-color:#e0e090;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimError],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimError],
+.vimtyping.pscolor .syntaxgroup.vimError,
+.inlinevimtyping.pscolor .syntaxgroup.vimError
+{
+ color:#c03000;
+}
+
+vimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined],
+inlinevimtyping[detail=pscolor] syntaxgroup[defail=vimUnderlined],
+.vimtyping.pscolor .syntaxgroup.vimUnderlined,
+.inlinevimtyping.pscolor .syntaxgroup.vimUnderlined
+{
+ color:#6a5acd;
+ text-decoration:underline;
+}
+
+/* `blackandwhite` color scheme */
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimConstant],
+.vimtyping.blackandwhite .syntaxgroup.vimConstant,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimConstant,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimString],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimString],
+.vimtyping.blackandwhite .syntaxgroup.vimString,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimString,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCharacter],
+.vimtyping.blackandwhite .syntaxgroup.vimCharacter,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimCharacter,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimBoolean],
+.vimtyping.blackandwhite .syntaxgroup.vimBoolean,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimBoolean,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFloat],
+.vimtyping.blackandwhite .syntaxgroup.vimFloat,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimFloat
+{
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimNumber],
+.vimtyping.blackandwhite .syntaxgroup.vimNumber,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimNumber
+{
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIdentifier],
+.vimtyping.blackandwhite .syntaxgroup.vimIdentifier,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimIdentifier,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimFunction],
+.vimtyping.blackandwhite .syntaxgroup.vimFunction,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimFunction
+{
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStatement],
+.vimtyping.blackandwhite .syntaxgroup.vimStatement,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimStatement,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimCondition],
+.vimtyping.blackandwhite .syntaxgroup.vimCondition,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimCondition,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimRepeat],
+.vimtyping.blackandwhite .syntaxgroup.vimRepeat,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimRepeat,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimLabel],
+.vimtyping.blackandwhite .syntaxgroup.vimLabel,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimLabel,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimOperator],
+.vimtyping.blackandwhite .syntaxgroup.vimOperator,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimOperator,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimKeyword],
+.vimtyping.blackandwhite .syntaxgroup.vimKeyword,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimKeyword,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimException],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimException],
+.vimtyping.blackandwhite .syntaxgroup.vimException,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimException
+{
+ font-weight:bold;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreProc],
+.vimtyping.blackandwhite .syntaxgroup.vimPreProc,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimPreProc,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimInclude],
+.vimtyping.blackandwhite .syntaxgroup.vimInclude,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimInclude,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDefine],
+.vimtyping.blackandwhite .syntaxgroup.vimDefine,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimDefine,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimMacro],
+.vimtyping.blackandwhite .syntaxgroup.vimMacro,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimMacro,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimPreCondit],
+.vimtyping.blackandwhite .syntaxgroup.vimPreCondit,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimPreCondit
+{
+ font-weight:bold;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimType],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimType],
+.vimtyping.blackandwhite .syntaxgroup.vimType,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimType,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStorageClass],
+.vimtyping.blackandwhite .syntaxgroup.vimStorageClass,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimStorageClass,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimStructure],
+.vimtyping.blackandwhite .syntaxgroup.vimStructure,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimStructure,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTypedef],
+.vimtyping.blackandwhite .syntaxgroup.vimTypedef,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimTypedef
+{
+ font-weight:bold;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecial],
+.vimtyping.blackandwhite .syntaxgroup.vimSpecial,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecial,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialChar],
+.vimtyping.blackandwhite .syntaxgroup.vimSpecialChar,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialChar,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDelimiter],
+.vimtyping.blackandwhite .syntaxgroup.vimDelimiter,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimDelimiter,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimDebug],
+.vimtyping.blackandwhite .syntaxgroup.vimDebug,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimDebug
+{
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimComment],
+.vimtyping.blackandwhite .syntaxgroup.vimComment,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimComment,
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimSpecialComment],
+.vimtyping.blackandwhite .syntaxgroup.vimSpecialComment,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimSpecialComment
+{
+ font-style:italic;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimIgnore],
+.vimtyping.blackandwhite .syntaxgroup.vimIgnore,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimIgnore
+{
+
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimTodo],
+.vimtyping.blackandwhite .syntaxgroup.vimTodo,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimTodo
+{
+ border:0.6px solid;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimError],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimError],
+.vimtyping.blackandwhite .syntaxgroup.vimError,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimError
+{
+ text-decoration:line-through;
+}
+
+vimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined],
+inlinevimtyping[detail=blackandwhite] syntaxgroup[defail=vimUnderlined],
+.vimtyping.blackandwhite .syntaxgroup.vimUnderlined,
+.inlinevimtyping.blackandwhite .syntaxgroup.vimUnderlined
+{
+ text-decoration:underline;
+}
+