From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- .../context-vim/tex/context/third/vim/t-vim.tex | 439 +++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex (limited to 'macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex') 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 new file mode 100644 index 0000000000..3cd83cdb2f --- /dev/null +++ b/macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex @@ -0,0 +1,439 @@ +%D \module +%D [ file=t-vim, +%D version=2018.04.17, +%D title=\CONTEXT\ User Module, +%D subtitle=Vim syntax highlighting, +%D author=Aditya Mahajan, +%D date=\currentdate, +%D copyright=Aditya Mahajan, +%D email=adityam ieee org, +%D license=Simplified BSD License] + +\writestatus{loading}{Vim syntax highlighting (ver: 2018.04.17)} + +\startmodule [vim] +\usemodule [filter] % loads module catcodes +\usemodule [syntax-highlight] % loads syntax-groups and filter module + +\startinterface all + \setinterfaceconstant {vimrc} {vimrc} +\stopinterface + +\unprotectmodulecatcodes + +\def\vimtyping@id {vimtyping} +\def\vimtyping@namespace {@@@@\vimtyping@id} +\def\vimtyping@name {} + +\def\vimrc@id {vimrc} + +\installparameterhandler \vimtyping@namespace \vimtyping@id +\installsetuphandler \vimtyping@namespace \vimtyping@id + +\def\definevimtyping + {\dodoubleargument\vimtyping@define} + +\starttexdefinition vimtyping@define [#1][#2] + \setupvimtyping[#1][\s!parent=\vimtyping@namespace,#2] + + \definesyntaxhighlighting[#1][\s!parent=\vimtyping@namespace#1] + \setupsyntaxhighlighting [#1][#2] + + + \setvalue{\e!start raw#1}{\bgroup\obeylines\dodoubleargument\vimtyping@start_raw[#1]} + \setvalue{\e!stop raw#1}{\vimtyping@stop_raw} + \setvalue{inlineraw#1}{\dodoubleargument\vimtyping@inline_raw[#1]} +\stoptexdefinition + +\starttexdefinition vimtyping@start_raw [#1][#2] + % #1 = filter + % #2 = options + \egroup %\bgroup in \start#1 + + \edef\vimtyping@name{#1} + \edef\externalfilter@name{#1} + \edef\currentexternalfilter{#1} + + \begingroup % to keep assignments local + \setupvimtyping[#1][\c!name=,#2] + + \externalfilterparameter\c!before + + \externalfilter@attributes_start \externalfilter@id \c!style \c!color + \syntaxhighlighting@linenumbering_start + \processcommacommand[\externalfilterparameter\c!setups]\directsetup + \gobbleoneargument % For some reason the next argument is \type{^M} +\stoptexdefinition + +\starttexdefinition vimtyping@stop_raw + % The last argument of the environment is \type{^M}, + % so we explicitly backup one line. + \nobreak + \vskip-\dimexpr\lineheight+\parskip\relax + \nobreak + + \removeunwantedspaces + \syntaxhighlighting@linenumbering_stop + \externalfilter@attributes_stop + \externalfilterparameter\c!after + \endgroup + +\stoptexdefinition + +\starttexdefinition vimtyping@inline_raw [#1][#2] + % #1 = filter + % #2 = options + + \edef\vimtyping@name{#1} + \edef\externalfilter@name{#1} + \edef\currentexternalfilter{#1} + + \begingroup % to keep assignments local + \setupvimtyping[#1][\c!name=,\c!location=\v!text,#2] + + \externalfilter@attributes_start \externalfilter@id \c!style \c!color + % We assume that the setups set minimal_catcodes + \processcommacommand[\externalfilterparameter\c!setups]\directsetup + + \vimtyping@inline_raw_indeed +\stoptexdefinition + +\starttexdefinition vimtyping@inline_raw_indeed #1 + #1 + \externalfilter@attributes_stop + \endgroup +\stoptexdefinition + +% Mode to testing the dev version of 2context script. +\doifmodeelse{vim-dev} + {\def\vimtyping@script_name{2context.vim}} + {\doifmodeelse\s!mkiv + {\ctxlua{context.setvalue("vimtyping@script_name",resolvers.resolve("full:2context.vim"))}} + {\def\vimtyping@script_name{kpse:2context.vim}}} + +\def\vimtyping@filter_command + {vim -u \vimrc_filename\space % read global config file + % --startuptime log + % -V3log + -X % dont connect to X server + -i NONE % dont use viminfo file + --noplugin % dont load plugins + -e % run in ex mode + -s % silent + -C % set compatible + -n % no swap file + -c "syntax manual" % don't load filetype detection + -c "set syntax=\externalfilterparameter\c!syntax" % + -c "set tabstop=\externalfilterparameter\c!tab" % + % vim only accepts 10 -c commands, so we combine a few let statements + -c "let contextstartline=\externalfilterparameter\c!start \letterbar\space % + let contextstopline=\externalfilterparameter\c!stop \letterbar\space % + let strip=\getvalue{\vimtyping@id-\c!strip-\externalfilterparameter\c!strip}" % + -c "let escapecomments=\getvalue{\vimtyping@id-\c!escape-\externalfilterparameter\c!escape}" % + -c "let highlight=[\externalfilterparameter\c!highlight]" % + \vimrc_extras\space + -c "source \vimtyping@script_name" % + -c "qa" % + \externalfilterinputfile\space + \externalfilteroutputfile} + +\setvalue{\vimtyping@id-\c!strip-\v!off}{0} +\setvalue{\vimtyping@id-\c!strip-\v!on}{1} + +\setvalue{\vimtyping@id-\c!escape-\v!off}{0} +\setvalue{\vimtyping@id-\c!escape-\v!on}{1} + + +% Undocumented ... but useful if the user makes a mistake +\setvalue{\vimtyping@id-\c!strip-\v!no}{0} +\setvalue{\vimtyping@id-\c!strip-\v!yes}{1} + +\setvalue{\vimtyping@id-\c!escape-\v!no}{0} +\setvalue{\vimtyping@id-\c!escape-\v!yes}{1} + + +\setupvimtyping + [% \c!tab=4, + % \c!start=1, + % \c!stop=0, + % \c!syntax=context, + % \c!alternative=pscolor, + % \c!before=, + % \c!after=, + % \c!style=\tttf, + % \c!color=, + \c!strip=\v!yes, + \c!escape=\v!off, + % \c!highlight=, + % \c!highlightcolor=lightgray, + \c!filtercommand=\vimtyping@filter_command, + % \c!continue=yes, + % \c!read=\v!yes, + % \c!readcommand=\syntaxhighlighting@read_command, + \c!output=\externalfilterbasefile.vimout, + %\c!setups=syntaxhighlighting@setup, + \c!filter\c!setups=vimrc@setup, + % \c!option=\v!packed, % Could be a list + \s!parent=\syntaxhighlighting@namespace, + \c!vimrc=, + % % Numbering options + % \c!numbering=\v!no, + % \c!number\c!start=1, + % \c!number\c!step=1, + % \c!number\c!continue=\v!no, + % \c!numberconversion=\v!numbers, + % \c!number\c!method=\v!first, + % \c!number\c!location=\v!left, + % \c!numberstyle=\ttx, + % \c!numbercolor=, + % \c!number\c!width=2em, + % \c!number\c!left=, + % \c!number\c!right=, + % \c!number\c!command=, + % \c!number\c!distance=0.5em, + % \c!number\c!align=\v!flushright, + ] + +\def\currentvimtyping {\vimtyping@name} + +\defineexternalfilter + [\vimrc@id] + [\c!continue=\v!no, + \c!read=\v!no, + \c!purge=\v!no, + \c!filtercommand=\empty] + +\def\vimrcfile_name{NONE} +\def\vimrc_extras{} + +\startsetups vimrc@setup + \doifelsenothing{\externalfilterparameter\c!vimrc} + {\def\vimrc_filename{NONE}} + {\begingroup + \expanded{\setupexternalfilter[\vimrc@id][\c!name=\externalfilterparameter\c!vimrc]} + + \edef\externalfilter@name{\vimrc@id} + \edef\currentexternalfilter{\vimrc@id} + + \externalfilter@set_filenames + + \global\xdef\vimrc_filename{\externalfilter@input_file} + \endgroup + } + + \doifelsenothing{\externalfilterparameter\c!extras} + {\def\vimrc_extras{}} + {\begingroup + \expanded{\setupexternalfilter[\vimrc@id][\c!name=\externalfilterparameter\c!extras]} + + \edef\externalfilter@name{\vimrc@id} + \edef\currentexternalfilter{\vimrc@id} + + \externalfilter@set_filenames + + \global\xdef\vimrc_extras{-c "source \externalfilter@input_file"} + \endgroup + } +\stopsetups + +\defineframed[vimtodoframed] + [ + \c!location=\v!low, + \c!frame=\v!off, + \c!background=\v!color, + \c!backgroundcolor=vimtodoyellow, + ] + +\definecolor[vimtodoyellow] + [h={E0E090}] + +\startsetups[vim-minor-groups] + \definesyntaxgroup + [SpecialComment] + [Comment] + + \definesyntaxgroup + [String,Character,Number,Boolean,Float] + [Constant] + + \definesyntaxgroup + [Function] + [Identifier] + + \definesyntaxgroup + [Condition,Repeat,Label,Operator,Keyword,Exception] + [Statement] + + \definesyntaxgroup + [Include,Define,Macro,PreCondit] + [Preproc] + + \definesyntaxgroup + [StorageClass,Structure,Typedef] + [Type] + + \definesyntaxgroup + [SpecialChar,Delimiter,Debug] + [Special] +\stopsetups + +\startcolorscheme[pscolor] + % Vim Preferred groups + \definesyntaxgroup + [Constant] + [\c!color={h=007068}] + + \definesyntaxgroup + [Identifier] + [\c!color={h=a030a0}] + + \definesyntaxgroup + [Statement] + [\c!color={h=2060a8}] + + \definesyntaxgroup + [PreProc] + [\c!color={h=009030}] + + \definesyntaxgroup + [Type] + [\c!color={h=0850a0}] + + \definesyntaxgroup + [Special] + [\c!color={h=907000}] + + \definesyntaxgroup + [Comment] + [\c!color={h=606000}] + + \definesyntaxgroup + [Ignore] + + \definesyntaxgroup + [Todo] + [\c!color={h=800000}, + \c!command=\vimtodoframed] + + + \definesyntaxgroup + [Error] + [\c!color={h=c03000}] + + \definesyntaxgroup + [Underlined] + [\c!color={h=6a5acd}, + \c!command=\underbar] + + \definesyntaxgroup + [Todo] + [\c!color={h=800000}, + \c!command=\vimtodoframed] + + \setups{vim-minor-groups} + + \definesyntaxgroup + [Number] + [\c!color={h=907000}] +\stopcolorscheme + +\startcolorscheme[blackandwhite] + \definesyntaxgroup + [Constant] + + \definesyntaxgroup + [Identifier] + + \definesyntaxgroup + [Statement] + [\c!style=bold] + + \definesyntaxgroup + [PreProc] + [\c!style=bold] + + \definesyntaxgroup + [Type] + [\c!style=bold] + + \definesyntaxgroup + [Special] + + \definesyntaxgroup + [Comment] + [\c!style=italic] + + \definesyntaxgroup + [Ignore] + + \definesyntaxgroup + [Todo] + [\c!command=\inframed] + + \definesyntaxgroup + [Error] + [\c!command=\overstrike] + + \definesyntaxgroup + [Underlined] + [\c!command=\underbar] + + \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 + -- cgit v1.2.3