summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/m-scite.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/m-scite.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/m-scite.mkiv275
1 files changed, 0 insertions, 275 deletions
diff --git a/Master/texmf-dist/tex/context/base/m-scite.mkiv b/Master/texmf-dist/tex/context/base/m-scite.mkiv
deleted file mode 100644
index 7a8e8b06e6f..00000000000
--- a/Master/texmf-dist/tex/context/base/m-scite.mkiv
+++ /dev/null
@@ -1,275 +0,0 @@
-%D \module
-%D [ file=m-scite,
-%D version=2014.04.28,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\SCITE\ lexers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% We can simplify the scite lexers, as long as we're able to return the
-% lexed result table and provide alexer module with the functions that
-% the lexer expects (so I need to decipher the cxx file).
-%
-% lexer._TOKENSTYLES : table
-% lexer._CHILDREN : flag
-% lexer._EXTRASTYLES : table
-% lexer._GRAMMAR : flag
-%
-% lexers.load : function
-% lexers.lex : function
-%
-% And some properties that map styles onto scintilla styling. I get the
-% impression that we end up with something simpler, a hybrid between the
-% scite lexing and the current context way, so we get an intermediate
-% step, with some penalty for context, but at least I don't have to
-% maintain two sets (three sets as we also have a line based series).
-
-% TODO: as these files are in tds we can locate them and set the lexer root
-% to that one. Currently we're on: we're on context/documents.
-
-% This is an experiment: eventually we need to hook it into the verbatim code
-% and deal with widow lines and so.
-
-\startluacode
-
--- todo: merge with collapse
--- todo: prehash whitespaces
-
--- todo: hook into the pretty print code
--- todo: a simple catcode regime with only \ { }
-
-local gsub, sub, find = string.gsub, string.sub, string.find
-local concat = table.concat
-local formatters = string.formatters
-local lpegmatch = lpeg.match
-local setmetatableindex = table.setmetatableindex
-
-local scite = require("util-sci")
-buffers.scite = scite
-
--- context output:
-
-local f_def_color = formatters["\\definecolor[slxc%s][h=%s%s%s]%%"]
-local f_fore_none = formatters["\\def\\slx%s#1{{\\slxc%s#1}}%%"]
-local f_fore_bold = formatters["\\def\\slx%s#1{{\\slxc%s\\bf#1}}%%"]
-local f_none_bold = formatters["\\def\\slx%s#1{{\\bf#1}}%%"]
-local f_none_none = formatters["\\def\\slx%s#1{{#1}}%%"]
-local f_texstyled = formatters["\\slx%s{%s}"]
-
-local f_mapping = [[
-\let\string\slxL\string\letterleftbrace
-\let\string\slxR\string\letterrightbrace
-\let\string\slxM\string\letterdollar
-\let\string\slxV\string\letterbar
-\let\string\slxU\string\letterhat
-\let\string\slxD\string\letterunderscore
-\let\string\slxH\string\letterhash
-\let\string\slxB\string\letterbackslash
-\let\string\slxP\string\letterpercent
-\let\string\slxS\string\fixedspace
-%]]
-
-local replacer = lpeg.replacer {
- ["{"] = "\\slxL ",
- ["}"] = "\\slxR ",
- ["$"] = "\\slxM ",
- ["^"] = "\\slxU ",
- ["_"] = "\\slxD ",
- ["|"] = "\\slxV ",
- ["#"] = "\\slxH ",
- ["\\"] = "\\slxB ",
- ["%"] = "\\slxP ",
- [" "] = "\\slxS ",
-}
-
-local colors = nil
-
-local function exportcolors()
- if not colors then
- scite.loadscitelexer()
- local function black(f)
- return (f[1] == f[2]) and (f[2] == f[3]) and (f[3] == '00')
- end
- local result, r = { f_mapping }, 1
- for k, v in table.sortedhash(lexer.context.styles) do
- local fore = v.fore
- if fore and not black(fore) then
- r = r + 1
- result[r] = f_def_color(k,fore[1],fore[2],fore[3])
- end
- end
- r = r + 1
- result[r] = "%"
- for k, v in table.sortedhash(lexer.context.styles) do
- local bold = v.bold
- local fore = v.fore
- r = r + 1
- if fore and not black(fore) then
- if bold then
- result[r] = f_fore_bold(k,k)
- else
- result[r] = f_fore_none(k,k)
- end
- else
- if bold then
- result[r] = f_none_bold(k)
- else
- result[r] = f_none_none(k)
- end
- end
- end
- colors = concat(result,"\n")
- end
- return colors
-end
-
-local function exportwhites()
- return setmetatableindex(function(t,k)
- local v = find(k,"white") and true or false
- t[k] = v
- return v
- end)
-end
-
-local function exportstyled(lexer,text)
- local result = lexer.lex(lexer,text,0)
- local start = 1
- local whites = exportwhites()
- local buffer = { }
- for i=1,#result,2 do
- local style = result[i]
- local position = result[i+1]
- local txt = sub(text,start,position-1)
- txt = lpegmatch(replacer,txt)
- if whites[style] then
- buffer[#buffer+1] = txt
- else
- buffer[#buffer+1] = f_texstyled(style,txt)
- end
- start = position
- end
- buffer = concat(buffer)
- return buffer
-end
-
-function scite.installcommands()
- context(exportcolors())
-end
-
-local function lexdata(data,lexname)
- buffers.assign("lex",exportstyled(scite.loadedlexers[lexname],data or ""))
-end
-
-scite.lexdata = lexdata
-
-function scite.lexbuffer(name,lexname)
- lexdata(buffers.getcontent(name) or "",lexname or "tex")
-end
-
-function scite.lexfile(filename,lexname)
- lexdata(io.loaddata(filename) or "",lexname or file.suffix(filename))
-end
-
--- html output
-
-\stopluacode
-
-% This is a preliminary interface.
-
-\unprotect
-
-\unexpanded\def\installscitecommands
- {\ctxlua{buffers.scite.installcommands()}%
- \let\installscitecommands\relax}
-
-\unexpanded\def\startscite{\startlines}
-\unexpanded\def\stopscite {\stoplines}
-
-\unexpanded\def\scitefile
- {\dosingleargument\module_scite_file}
-
-\unexpanded\def\module_scite_file[#1]%
- {\start
- \ctxlua{buffers.scite.lexfile("#1")}%
- \installscitecommands
- \tt
- \dontcomplain
- \setcatcodetable\ctxcatcodes % needed in xml
- \startscite
- \getbuffer[lex]%
- \stopscite
- \stop}
-
-\unexpanded\def\scitebuffer
- {\dodoubleargument\module_scite_buffer}
-
-\unexpanded\def\module_scite_buffer[#1][#2]%
- {\start
- \ifsecondargument
- \ctxlua{buffers.scite.lexbuffer("#2","#1")}%
- \else
- \ctxlua{buffers.scite.lexbuffer("#1","tex")}%
- \fi
- \installscitecommands
- \tt
- \dontcomplain
- \setcatcodetable\ctxcatcodes % needed in xml
- \startscite
- \getbuffer[lex]%
- \stopscite
- \stop}
-
-\protect
-
-\continueifinputfile{m-scite.mkiv}
-
-\setupbodyfont[dejavu,8pt]
-
-\setuplayout
- [width=middle,
- height=middle,
- header=1cm,
- footer=1cm,
- topspace=1cm,
- bottomspace=1cm,
- backspace=1cm]
-
-\startbuffer[demo]
-\startsubsubject[title={oeps}]
-
-\startMPcode
- draw fullcircle
- scaled 2cm
- withpen pencircle scaled 1mm
- withcolor .5green;
- draw textext (
- lua (
- "local function f(s) return string.upper(s) end mp.quoted(f('foo'))"
- )
- ) withcolor .5red ;
-\stopMPcode
-
-\startluacode
- context("foo")
-\stopluacode
-
-\stopsubsubject
-\stopbuffer
-
-\starttext
-
-% \scitefile[../lexers/scite-context-lexer.lua] \page
-% \scitefile[t:/manuals/about/about-metafun.tex] \page
-% \scitefile[t:/sources/strc-sec.mkiv] \page
-% \scitefile[e:/tmp/mp.w] \page
-% \scitefile[t:/manuals/hybrid/tugboat.bib] \page
-\scitefile[e:/tmp/test.bib] \page
-
-% \getbuffer[demo] \scitebuffer[demo]
-
-\stoptext