diff --git a/README.md b/README.md index 0b9cd41..17cfb9f 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ Table of Contents * [Processing remote files](#processing-remote-files) * [Processing existing buffers](#processing-existing-buffers) * [Prepend and append text](#prepend-and-append-text) +* [XML export](#xml-export) * [Special use case: \write18 with caching](#special-use-case--write18-with-caching) * [Dealing with expansion](#dealing-with-expansion) * [Limitations](#limitations) @@ -754,6 +755,43 @@ Then you can use to get a chess board. +XML export +---------- + +The filter 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 filter +environment is exported as well. For example, both + + \startmarkdown + ... + \stopmarkdown + +and + \processmarkdownfile{...} + +are exported (in `\jobname-export/\jobname.xml`) as + + + ... + + +Moreover, + + \inlinemarkdown{...} + +is exported as + + .... + + +Note that it is the responsibility of the filter to generate properly tagged +content. For example, `pandoc` used in the `markdown` examples in this +document converts `**bold**` to `{\bf bold}`, which is not exported. + Special use case: `\write18` with caching ------------------------------------------ diff --git a/Rakefile b/Rakefile index 41f4722..8bddea4 100644 --- a/Rakefile +++ b/Rakefile @@ -1,15 +1,6 @@ require 'fileutils' require 'rake/clean' -def make_pandoc - File.open('t-pandoc.tex', 'w') do |file| - file.puts "\\startmodule [pandoc]" - file.puts "\\let\\strong\\bold" - file.puts "\\let\\emph\\italic" - file.puts "\\stopmodule" - end -end - def make_tds(name, files, doc) tex_dir = "#{name}/tex/context/third/#{name}" doc_dir = "#{name}/doc/context/third/#{name}" @@ -30,10 +21,9 @@ def make_zip name end def run_tests tests, engine - make_pandoc FileUtils.mkdir_p "output" tests.each do |file| - sh "context --#{engine} --usemodule=pandoc --color --mode=vim-dev --noconsole --purgeall --purgeresult #{file}" + sh "context --#{engine} --color --mode=vim-dev --noconsole --purgeall --purgeresult #{file}" end sh "context --purgeall" end @@ -42,7 +32,7 @@ FILTER_TEX = %W[t-filter.mkii t-filter.mkiv t-module-catcodes.mkii t-module-cat FILTER_DOC = "README.md" FILTER_TEST = FileList['tests/[0-9][0-9]-*.tex'] -VIM_TEX = %W[t-vim.tex t-syntax-groups.tex t-syntax-highlight.mkii t-syntax-highlight.mkiv 2context.vim] +VIM_TEX = %W[t-vim.tex t-syntax-groups.mkii t-syntax-groups.mkiv t-syntax-highlight.mkii t-syntax-highlight.mkiv 2context.vim vimtyping-default.css] VIM_DOC = "vim-README.md" VIM_TEST = FileList['tests/vim/[0-9][0-9]-*.tex'] diff --git a/t-filter.mkiv b/t-filter.mkiv index 5db429a..757f475 100644 --- a/t-filter.mkiv +++ b/t-filter.mkiv @@ -1,6 +1,6 @@ %D \module %D [ file=t-filter, -%D version=2020.04.25, +%D version=2020.06.29, %D title=\CONTEXT\ User Module, %D subtitle=Filter, %D author=Aditya Mahajan, @@ -9,7 +9,7 @@ %D email=adityam ieee org, %D license=Simplified BSD License] -\writestatus{loading}{Filter (ver: 2020.04.25)} +\writestatus{loading}{Filter (ver: 2020.06.29)} \startmodule [filter] \usemodule [module-catcodes] @@ -35,6 +35,7 @@ \setinterfaceconstant {write} {write} \setinterfaceconstant {readcommand} {readcommand} \setinterfaceconstant {taglabel} {taglabel} + \setinterfaceconstant {tagdetail} {tagdetail} \stopinterface @@ -66,6 +67,10 @@ \setuevalue{process\currentexternalfilter file}{\externalfilter@process_file[\currentexternalfilter]}% \setuevalue{process\currentexternalfilter buffer}{\externalfilter@process_buffer[\currentexternalfilter]}% \setuevalue{inline\currentexternalfilter}{\externalfilter@inline[\currentexternalfilter]}% + \setelementbackendtag[\externalfilterparameter\c!taglabel] + \setelementnature [\externalfilterparameter\c!taglabel][display] + \setelementbackendtag[inline\externalfilterparameter\c!taglabel] + \setelementnature [inline\externalfilterparameter\c!taglabel][inline] \to \everydefineexternalfilter % For backward compatibility @@ -479,16 +484,17 @@ \doifelse{\externalfilterparameter\c!location}\v!paragraph {\blank[\externalfilterparameter\c!spacebefore] \usealignparameter\externalfilterparameter - \externalfilterparameter\c!before} - {\externalfilterparameter\c!left} + \externalfilterparameter\c!before + \dostarttagged{\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} + {\externalfilterparameter\c!left + \dostarttagged{inline\externalfilterparameter\c!taglabel}{\externalfilterparameter\c!tagdetail}} \begingroup - \dostarttagged{\externalfilterparameter\c!taglabel}\currentexternalfilter \useexternalfilterstyleandcolor\c!style\c!color \processcommacommand[\externalfilterparameter\c!setups]\directsetup \externalfilterparameter\c!readcommand\externalfilter@output_file - \dostoptagged \endgroup + \dostoptagged \doifelse{\externalfilterparameter\c!location}\v!paragraph {\externalfilterparameter\c!after @@ -526,6 +532,7 @@ \c!buffer\c!before=, \c!buffer\c!after=, \c!taglabel=\externalfilter@id, + \c!tagdetail=\currentexternalfilter, ] \def\externalfilterbasefile {\externalfilter@base_file} diff --git a/t-syntax-groups.tex b/t-syntax-groups.mkii similarity index 95% rename from t-syntax-groups.tex rename to t-syntax-groups.mkii index 23fb1b7..b13a902 100644 --- a/t-syntax-groups.tex +++ b/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/t-syntax-groups.mkiv b/t-syntax-groups.mkiv new file mode 100644 index 0000000..564490e --- /dev/null +++ b/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 ieee 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/t-syntax-highlight.mkiv b/t-syntax-highlight.mkiv index bda25b1..13786bb 100644 --- a/t-syntax-highlight.mkiv +++ b/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 ieee 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,7 +36,10 @@ \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 @@ -64,7 +67,6 @@ \to\everysetupsyntaxhighlighting \def\syntaxhighlighting@id {syntaxhighlighting} -\edef\t!syntaxhighlighting {\syntaxhighlighting@id} %D Helper macro @@ -114,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 @@ -125,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/t-vim.tex b/t-vim.tex index f873428..3cb8e31 100644 --- a/t-vim.tex +++ b/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 ieee 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 @@ -50,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 @@ -265,7 +270,6 @@ [\c!color={h=800000}, \c!command=\vimtodoframed] - \definesyntaxgroup [Error] [\c!color={h=c03000}] @@ -275,11 +279,6 @@ [\c!color={h=6a5acd}, \c!command=\underbar] - \definesyntaxgroup - [Todo] - [\c!color={h=800000}, - \c!command=\vimtodoframed] - \setups{vim-minor-groups} \definesyntaxgroup diff --git a/tests/41-export.tex b/tests/41-export.tex new file mode 100644 index 0000000..b427949 --- /dev/null +++ b/tests/41-export.tex @@ -0,0 +1,20 @@ +\usemodule[filter] + +\setupbackend[export=xml] +\defineexternalfilter + [markdown] + [filter={pandoc -w context -o \externalfilteroutputfile }] + +\starttext +\startparagraph + Both inline markdown such as \inlinemarkdown{**this** sample} and display + markdown shown below are exported. +\stopparagraph + \startmarkdown + This **display** sample + \stopmarkdown +\startparagraph + Note that the overall document must have a valid structure. +\stopparagraph +\stoptext + diff --git a/tests/vim/41-export.tex b/tests/vim/41-export.tex new file mode 100644 index 0000000..7699fee --- /dev/null +++ b/tests/vim/41-export.tex @@ -0,0 +1,43 @@ +\usemodule[vim] + +\setupbackend[export=yes] +\setupexport[cssfile=\vimtypingcssfile] + +\definevimtyping[PYTHON][syntax=python] + +\starttext +\startsection[title={A code listing}] + \startparagraph + This is a code listing + \stopparagraph + \startPYTHON + # Python program listing + # TODO: Define a more elaborate function + def foobar + print("Hello World") + \stopPYTHON + + \startparagraph + Now the same example with line numbering + \stopparagraph + \startPYTHON[numbering=yes] + # Python program listing + def foobar + print("Hello World") + \stopPYTHON + + \startparagraph + Now with the line numbering on the right. Location of line numbering is + fixed per page, hence a page break here + \stopparagraph + + \page + + \setupvimtyping[PYTHON][numberlocation=right] + \startPYTHON[numbering=yes] + # Python program listing + def foobar + print("Hello World") + \stopPYTHON +\stopsection +\stoptext diff --git a/tests/vim/42-export-inline.tex b/tests/vim/42-export-inline.tex new file mode 100644 index 0000000..cdc104d --- /dev/null +++ b/tests/vim/42-export-inline.tex @@ -0,0 +1,13 @@ +\usemodule[vim] + +\setupbackend[export=yes] +\setupexport[cssfile=\vimtypingcssfile] + +\definevimtyping[PYTHON][syntax=python] + +\starttext +\startparagraph + Here is some inline python code \inlinePYTHON{print("Hello World")}. + Let's see how it looks in display. +\stopparagraph +\stoptext diff --git a/tests/vim/43-export-float.tex b/tests/vim/43-export-float.tex new file mode 100644 index 0000000..567cb6c --- /dev/null +++ b/tests/vim/43-export-float.tex @@ -0,0 +1,31 @@ +\setupbackend[export=yes] + +\usemodule[vim] + +\definevimtyping[PYTHON][syntax=python] + +\starttext + \startparagraph + This is a test of a code listing inside a float + \stopparagraph + + \startplacefigure[location={here}, title={A code snippet in a float}] + \startPYTHON + a=12 + def hello_world(hello) + print("simon says: {}".format(hello)) + hallo_welt("How do you do?") + \stopPYTHON + \stopplacefigure + + \setupvimtyping[PYTHON][numbering=yes] + \startplacefigure[location={here}, title={A code snippet with line numbering in a float}] + \startPYTHON + a=12 + def hello_world(hello) + print("simon says: {}".format(hello)) + hallo_welt("How do you do?") + \stopPYTHON + \stopplacefigure +\stoptext + diff --git a/vim-README.md b/vim-README.md index 44dc8f5..12c5d10 100644 --- a/vim-README.md +++ b/vim-README.md @@ -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) @@ -974,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 + + + # Python program listing + def foobar + print("Hello World") + + +The name of the exported envionment is `vimtyping`. + +Inline environments such as + + \definevimtyping[PYTHON][syntax=python] + \inlinePYTHON{print("Hello World")} + +is exported as + + print("Hello World") + +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 ``. +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/vimtyping-default.css b/vimtyping-default.css new file mode 100644 index 0000000..e1eeb7d --- /dev/null +++ b/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; +} +