diff options
Diffstat (limited to 'tex/context/base/mkiv/mtx-context-meaning.tex')
-rw-r--r-- | tex/context/base/mkiv/mtx-context-meaning.tex | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/mtx-context-meaning.tex b/tex/context/base/mkiv/mtx-context-meaning.tex new file mode 100644 index 000000000..88b81ef04 --- /dev/null +++ b/tex/context/base/mkiv/mtx-context-meaning.tex @@ -0,0 +1,87 @@ +%D \module +%D [ file=mtx-context-meaning, +%D version=2018.01.12, +%D title=\CONTEXT\ Extra Trickry, +%D subtitle=Show Meanings, +%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. + +% begin help +% +% usage: context --extra=meaning [options] list-of-commands +% +% --pattern : match given pattern +% +% example: context --extra=meaning --pattern=*paper* +% context --extra=meaning setuplayout +% context --extra=meaning setup_layout +% context --extra=meaning --once --noconsole --nostatistics setuplayout +% mtxrun --silent --script context --extra=meaning --once --noconsole --nostatistics setuplayout +% mtxrun --script interface --meaning setuplayout +% +% end help + +\input mtx-context-common.tex + +\setupbodyfont + [dejavu] + +\def\showmeaning#1% + {\ctxlua{logs.pushtarget("both")}% + \writestatus{meaning}{\strippedcsname#1}% + \writestring{}% + \writestring{\expandafter\meaning\begincsname#1\endcsname}% + \ctxlua{logs.poptarget()}} + +\starttext + +\usemodule[setups-macros] + +\startluacode + local h = tex.hashtokens() + + local function showmeaning(str) + local h = interfaces.macros.collect(str) + context("pattern: ") + context.type(str) + context.blank() + for i=1,#h do + local hi = h[i] + context.type(hi) + context.par() + context.showmeaning(hi) + end + context.page() + end + + local done = false + local pattern = document.arguments.pattern + + if pattern then + pattern = { pattern} + else + pattern = document.files + end + + if type(pattern) == "table" then + table.sort(pattern) + for i=1,#pattern do + local p = pattern[i] + if not string.find(p,"^mtx%-context%-") then + done = true + showmeaning(p) + end + end + end + + if not done then + context("no search pattern given") + end +\stopluacode + +\stoptext |