diff options
author | Norbert Preining <norbert@preining.info> | 2020-07-01 03:03:30 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-07-01 03:03:30 +0000 |
commit | d79a721c345c9a2ced6c0640e88c10cc3378c1f0 (patch) | |
tree | 400d84326bfe896b980146734c9650006b72e550 /macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv | |
parent | 70c32b2936f7dac3a0898faafe7c554c3bedeae9 (diff) |
CTAN sync 202007010303
Diffstat (limited to 'macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv')
-rw-r--r-- | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.mkiv | 126 |
1 files changed, 126 insertions, 0 deletions
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 |