summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/cldf-ini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/cldf-ini.lua')
-rw-r--r--tex/context/base/mkiv/cldf-ini.lua25
1 files changed, 21 insertions, 4 deletions
diff --git a/tex/context/base/mkiv/cldf-ini.lua b/tex/context/base/mkiv/cldf-ini.lua
index 7e6af8072..24092d852 100644
--- a/tex/context/base/mkiv/cldf-ini.lua
+++ b/tex/context/base/mkiv/cldf-ini.lua
@@ -368,11 +368,13 @@ end
-- interfaces.scanners.foo = function() context("[%s]",tokens.scanners.string()) end : \scan_foo
-local storedscanners = interfaces.storedscanners or { }
-local interfacescanners = { }
-local privatenamespace = "clf_"
+local storedscanners = interfaces.storedscanners or { }
+local namesofscanners = interfaces.namesofscanners or { }
+local interfacescanners = { }
+local privatenamespace = "clf_"
-interfaces.storedscanners = storedscanners
+interfaces.storedscanners = storedscanners
+interfaces.namesofscanners = namesofscanners
storage.register("interfaces/storedscanners", storedscanners, "interfaces.storedscanners")
@@ -381,6 +383,7 @@ local function registerscanner(name,action,protected,public,usage) -- todo: comb
local n = storedscanners[name]
n = registerfunction("interfaces.scanners."..name,true,n)
storedscanners[name] = n
+ namesofscanners[n] = name
name = public and name or (privatenamespace .. name)
-- print(">>",name,protected and "protected" or "",usage or "macro")
setluatoken(name,n,"global",protected and "protected" or "",usage or "macro")
@@ -392,6 +395,20 @@ function interfaces.knownscanner(name)
return interfacescanners[name]
end
+function interfaces.nameofscanner(slot)
+ return namesofscanners[slot] or slot
+end
+
+if CONTEXTLMTXMODE > 0 then
+
+ callback.register("show_lua_call", function(what, slot)
+ local name = namesofscanners[slot]
+ -- return name and formatters["%s: \\%s, slot: %i"](what,name,slot) or ""
+ return name and formatters["%s \\%s"](what,name) or ""
+ end)
+
+end
+
setmetatablenewindex(interfacescanners, function(t,k,v)
report_cld("don't register scanner %a directly",k)
-- registerscanner(k,v)