summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/third/vim/t-vim.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/third/vim/t-vim.tex')
-rw-r--r--Master/texmf-dist/tex/context/third/vim/t-vim.tex403
1 files changed, 146 insertions, 257 deletions
diff --git a/Master/texmf-dist/tex/context/third/vim/t-vim.tex b/Master/texmf-dist/tex/context/third/vim/t-vim.tex
index 59daac5d5da..f2713a0af1b 100644
--- a/Master/texmf-dist/tex/context/third/vim/t-vim.tex
+++ b/Master/texmf-dist/tex/context/third/vim/t-vim.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-vim,
-%D version=2011.03.06,
+%D version=2011.06.14,
%D title=\CONTEXT\ User Module,
%D subtitle=Vim syntax highlighting,
%D author=Aditya Mahajan,
@@ -11,34 +11,21 @@
\writestatus{loading}{ConTeXt User Module / Vim syntax highlighting}
-\startmodule[vim]
-\usemodule[filter]
+\startmodule [vim]
+\usemodule [filter]
+\usemodule [syntax-highlight]
+\usemodule [syntax-groups]
+\usemodule [module-catcodes]
-% I use the experimental namespaces defined in t-filter.
-\pushcatcodetable
-\setcatcodetable\externalfiltermodulecatcodes
-
-% Colors are specified in hex; in MkII the hex mode needs to be activated.
-\doifmode\s!mkii
- {\setupcolor[hex]}
-
-\startinterface all
- \setinterfaceconstant {syntax} {syntax}
-\stopinterface
+\unprotectmodulecatcodes
\def\vimtyping::id {vimtyping}
\def\vimtyping::namespace {@@@@\vimtyping::id}
\def\vimtyping::name {}
-\def\vimalternative::id {vimalternative}
-\def\vimalternative::namespace {@@@@\vimalternative::id}
-\def\vimalternative::name {}
-
\installparameterhandler \vimtyping::namespace \vimtyping::id
\installsetuphandler \vimtyping::namespace \vimtyping::id
-
-
\def\definevimtyping
{\dodoubleargument\vimtyping::define}
@@ -46,81 +33,11 @@
\getparameters[\vimtyping::namespace#1][\s!parent=\vimtyping::namespace,#2]
\edef\vimtyping::name{#1}
- \doifmode\s!mkiv{\setups{vimtyping::setup_line_number_mkiv}}
-
- \defineexternalfilter[#1][\s!parent=\vimtyping::namespace#1]
- \setvalue{type#1file}{\getvalue{process#1file}}
+ \definesyntaxhighlighting[#1][\s!parent=\vimtyping::namespace#1]
\stoptexdefinition
-\startsetups vimtyping::setup
-
- \edef\vimtyping::name{\currentexternalfilter}
- \edef\vimalternative::name{\externalfilterparameter\c!alternative}
-
- \let\SYN\vimsyntax
- \def\NL{\strut}%
-
- \def\tab##1%
- {\dorecurse{##1}{\space}}%
-
- \doifmode\s!mkii{\setups{vimtyping::setup_line_number_mkii}}%
-
- \doifinset{\externalfilterparameter\c!option}{\v!packed}
- {\setupwhitespace[\v!none,\v!flexible]}%
-
- \setcatcodetable\externalfilter::write_catcodes
-\stopsetups
-
-\startsetups vimtyping::setup_line_number_mkiv
- \definelinenumbering [#1]
-
- \setuplinenumbering
- [\vimtyping::name]
- [\c!conversion=\externalfilterparameter\c!numberconversion,
- \c!start=\externalfilterparameter{\c!number\c!start},
- \c!step=\externalfilterparameter{\c!number\c!step},
- \c!method=\externalfilterparameter{\c!number\c!method},
- \c!location=\externalfilterparameter{\c!number\c!location},
- \c!style=\externalfilterparameter\c!numberstyle,
- \c!color=\externalfilterparameter\c!numbercolor,
- \c!width=\externalfilterparameter{\c!number\c!width},
- \c!left=\externalfilterparameter{\c!number\c!left},
- \c!right=\externalfilterparameter{\c!number\c!right},
- \c!command=\externalfilterparameter\c!numbercommand,
- \c!distance=\externalfilterparameter{\c!number\c!distance},
- \c!align=\externalfilterparameter{\c!number\c!align},
- ]
-\stopsetups
-
-\doifmode\s!mkii
- {\newcount\vimtyping::linenumber}
-
-\startsetups vimtyping::setup_line_number_mkii
-\doif{\externalfilterparameter\c!numbering}\v!yes
- {% setuplinenumbering resets \linenumber. So we save the value of linenumber and
- % revert it back.
- \vimtyping::linenumber=\linenumber
-
- \setuplinenumbering
- [\c!conversion=\externalfilterparameter\c!numberconversion,
- \c!start=\externalfilterparameter{\c!number\c!start},
- \c!step=\externalfilterparameter{\c!number\c!step},
- \c!method=\externalfilterparameter{\c!number\c!method},
- \c!location=\externalfilterparameter{\c!number\c!location},
- \c!style=\externalfilterparameter\c!numberstyle,
- \c!color=\externalfilterparameter\c!numbercolor,
- \c!width=\externalfilterparameter{\c!number\c!width},
- \c!left=\externalfilterparameter{\c!number\c!left},
- \c!right=\externalfilterparameter{\c!number\c!right},
- \c!command=\externalfilterparameter\c!numbercommand,
- \c!distance=\externalfilterparameter{\c!number\c!distance},
- \c!align=\externalfilterparameter{\c!number\c!align},
- ]
-
- \linenumber=\vimtyping::linenumber}
-\stopsetups
-
+% Mode to testing the dev version of 2context script.
\doifmodeelse{vimtest}
{\def\vimtyping::script_name{2context.vim}}
{\def\vimtyping::script_name{kpse:2context.vim}}
@@ -135,206 +52,178 @@
-c "syntax on" %
-c "set syntax=\externalfilterparameter\c!syntax" %
-c "let contextstartline=\externalfilterparameter\c!start" %
- -c "let contextstopline=\externalfilterparameter\c!stop" %
+ -c "let contextstopline=\externalfilterparameter\c!stop" %
-c "source \vimtyping::script_name" %
-c "qa" %
\externalfilterinputfile\space
\externalfilteroutputfile}
-\startmode [\s!mkiv]
-\starttexdefinition vimtyping::read_command #1
- \doifelse{\externalfilterparameter\c!numbering}\v!yes
- {\startlinenumbering
- [\vimtyping::name]
- [\c!continue=\externalfilterparameter{\c!number\c!continue}]
- \ReadFile{#1}
- \stoplinenumbering}
- {\ReadFile{#1}}
-\stoptexdefinition
-\stopmode
-
-\startmode [\s!mkii]
-\starttexdefinition vimtyping::read_command #1
- \doifelse{\externalfilterparameter\c!numbering}\v!yes
- {\doifelse{\externalfilterparameter{\c!number\c!continue}}\v!yes
- {\startlinenumbering[\v!continue]}
- {\startlinenumbering}
- \ReadFile{#1}
- \stoplinenumbering}
- {\ReadFile{#1}}
-\stoptexdefinition
-\stopmode
-
-\def\startvimalternative
- {\dosingleargument\vimalternative::start}
-
-\def\vimalternative::start[#1]%
- {\pushmacro\vimalternative::name
- \edef\vimalternative::name{#1}}
-
-\def\stopvimalternative
- {\popmacro\vimalternative::name}
-
-\def\setvimsyntax
- {\doquadrupleargument\vimalternative::set_syntax}
-
-\starttexdefinition vimalternative::set_syntax [#1][#2][#3][#4]
- % #1 = name
- % #2 = color
- % #3 = style
- % #4 = command
- \def\dodosetupvimsyntax##1%
- {\doifsomething{#2}
- % we check if color exists; otherwise ConTeXt gives a warning on stdout
- % which is very distracting
- {\definecolor[\vimalternative::namespace\vimalternative::name##1color_name] [#2]
- \getparameters[\vimalternative::namespace\vimalternative::name##1]
- [\c!color={\vimalternative::namespace\vimalternative::name##1color_name}]}
- \getparameters[\vimalternative::namespace\vimalternative::name##1]
- [\c!style=#3,
- \c!command=#4]}
- \processcommalist[#1]\dodosetupvimsyntax
-\stoptexdefinition
+\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!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!option=\v!packed, % Could be a list
+ \s!parent=\syntaxhighlighting::namespace,
+ % % 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}
-\starttexdefinition vimsyntax [#1]#2
- % #1 = style
- % #2 = content
- \dostartattributes{\vimalternative::namespace\vimalternative::name Normal}\c!style\c!color\empty
- \dostartattributes{\vimalternative::namespace\vimalternative::name #1}\c!style\c!color\empty
- \getvalue{\vimalternative::namespace\vimalternative::name#1\c!command}{#2}
- \dostopattributes
- \dostopattributes
-\stoptexdefinition
+\startsetups[vim-minor-groups]
+ \definesyntaxgroup
+ [SpecialComment]
+ [Comment]
-% \startvimalternative[pscolor]
-%
-% \definesyntax
-% [Normal]
-% [color=\externalfilterparameter\c!color,
-% style=\tttf,
-% command=]
-%
-% \stopvimalternative
+ \definesyntaxgroup
+ [String,Character,Number,Boolean,Float]
+ [Constant]
-\startvimalternative[pscolor]
- \setvimsyntax [Normal] [\externalfilterparameter\c!color][\tttf]
+ \definesyntaxgroup
+ [Function]
+ [Identifier]
- \setvimsyntax
- [Constant,Character,Boolean,Float]
- [h=007068]
+ \definesyntaxgroup
+ [Condition,Repeat,Label,Operator,Keyword,Exception]
+ [Statement]
- \setvimsyntax [Number] [h=907000]
+ \definesyntaxgroup
+ [Include,Define,Macro,PreCondit]
+ [Preproc]
- \setvimsyntax
- [Identifier, Function]
- [h=a030a0]
+ \definesyntaxgroup
+ [StorateClass,Structure,Typedef]
+ [Type]
- \setvimsyntax
- [Statement,Conditional,Repeat,Label,Operator,Keyword,Exception]
- [h=2060a8]
+ \definesyntaxgroup
+ [SpecialChar,Delimiter,Debug]
+ [Special]
+\stopsetups
- \setvimsyntax
- [PreProc, Include, Define, Macro, PreCondit]
- [h=009030]
+\startcolorscheme[pscolor]
+ % Vim Preferred groups
+ \definesyntaxgroup
+ [Constant]
+ [\c!color={h=007068}]
- \setvimsyntax
- [Type,StorageClass, Structure, Typedef]
- [h=0850a0]
+ \definesyntaxgroup
+ [Identifier]
+ [\c!color={h=a030a0}]
- \setvimsyntax [Special] [h=907000]
- \setvimsyntax [SpecialKey][h=1050a0]
+ \definesyntaxgroup
+ [Statement]
+ [\c!color={h=2060a8}]
- \setvimsyntax
- [Tag, Delmiter]
+ \definesyntaxgroup
+ [PreProc]
+ [\c!color={h=009030}]
- \setvimsyntax
- [Comment, SpecialComment]
- [h=606000]
+ \definesyntaxgroup
+ [Type]
+ [\c!color={h=0850a0}]
- \setvimsyntax
- [Debug,Ignore]
+ \definesyntaxgroup
+ [Special]
+ [\c!color={h=907000}]
- \setvimsyntax [Todo] [h=e0e090]
- \setvimsyntax [Error] [h=c03000]
- \setvimsyntax [Underlined][h=6a5acd][][\underbar]
+ \definesyntaxgroup
+ [Comment]
+ [\c!color={h=606000}]
-\stopvimalternative
+ \definesyntaxgroup
+ [Ignore]
-%TODO
-% \setvimsyntax [id] [bg=, fc=, style=, command=] == \localframed[options]
-\startvimalternative[blackandwhite]
- \setvimsyntax [Normal] [\externalfilterparameter\c!color][\tttf]
+ \definesyntaxgroup
+ [Todo]
+ [\c!color={h=800000}]
- \setvimsyntax
- [Constant,Character,Boolean,Float,Number,Identifier,Function]
+ \definesyntaxgroup
+ [Error]
+ [\c!color={h=c03000}]
- \setvimsyntax
- [Statement,Conditional,Repeat,Label,Operator,Keyword,Exception]
- [][][\bold]
+ \definesyntaxgroup
+ [Underlined]
+ [\c!color={h=6a5acd},
+ \c!command=\underbar]
- \setvimsyntax
- [PreProc, Include, Define, Macro, PreCondit]
- [][][\bold]
+ \setups{vim-minor-groups}
- \setvimsyntax
- [Type,StorageClass, Structure, Typedef]
- [][][\bold]
+ \definesyntaxgroup
+ [Number]
+ [\c!color={h=907000}]
+\stopcolorscheme
- \setvimsyntax [Special, SpecialKey]
+\startcolorscheme[blackandwhite]
+ \definesyntaxgroup
+ [Constant]
- \setvimsyntax [Tag, Delmiter]
+ \definesyntaxgroup
+ [Identifier]
- \setvimsyntax
- [Comment, SpecialComment]
- [][][\italic]
+ \definesyntaxgroup
+ [Statement]
+ [\c!style=bold]
- \setvimsyntax
- [Debug,Ignore]
+ \definesyntaxgroup
+ [PreProc]
+ [\c!style=bold]
- \setvimsyntax [Todo] [][][\inframed]
- \setvimsyntax [Error] [][][\overstrike]
- \setvimsyntax [Underlined][][][\underbar]
+ \definesyntaxgroup
+ [Type]
+ [\c!style=bold]
-\stopvimalternative
+ \definesyntaxgroup
+ [Special]
-\setupvimtyping
- [\c!tab=4,
- \c!start=1,
- \c!stop=0,
- \c!syntax=context,
- \c!alternative=pscolor,
- \c!before=,
- \c!after=,
- \c!filtercommand=\vimtyping::filter_command,
- \c!continue=yes,
- \c!read=\v!yes,
- \c!readcommand=\vimtyping::read_command,
- \c!output=\externalfilterbasefile.vimout,
- \c!setups=vimtyping::setup,
- \c!option=\v!packed, % Could be a list
- \s!parent=\externalfilter::namespace,
- % 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=\tfx,
- \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,
- ]
+ \definesyntaxgroup
+ [Comment]
+ [\c!style=italic]
-\def\currentvimtyping {\vimtyping::name}
+ \definesyntaxgroup
+ [Ignore]
+
+ \definesyntaxgroup
+ [Todo]
+ [\c!command=\inframed]
+
+ \definesyntaxgroup
+ [Error]
+ [\c!command=\overstrike]
+
+ \definesyntaxgroup
+ [Underlined]
+ [\c!command=\underbar]
+
+ \setups{vim-minor-groups}
-\popcatcodetable
+\stopcolorscheme
+\protectmodulecatcodes
\stopmodule