summaryrefslogtreecommitdiff
path: root/scripts/context/lua/mtx-interface.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-04-08 12:28:54 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-04-08 12:28:54 +0200
commitea2466fe69bd082d379e95e1567f3de0b76de243 (patch)
tree70f1bdcf7d402f2ae013caebf5f4cef5f6c2baed /scripts/context/lua/mtx-interface.lua
parente32f57c9c5968f0c09130f6e24e28a96d6e1393d (diff)
downloadcontext-ea2466fe69bd082d379e95e1567f3de0b76de243.tar.gz
2017-04-08 12:15:00
Diffstat (limited to 'scripts/context/lua/mtx-interface.lua')
-rw-r--r--scripts/context/lua/mtx-interface.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/context/lua/mtx-interface.lua b/scripts/context/lua/mtx-interface.lua
index b82dd5abf..908d00540 100644
--- a/scripts/context/lua/mtx-interface.lua
+++ b/scripts/context/lua/mtx-interface.lua
@@ -380,6 +380,8 @@ end
-- flushers[editor](collected)
-- end
+-- we could instead load context-en.xml
+
function scripts.interface.editor(editor,split,forcedinterfaces)
local interfaces= forcedinterfaces or environment.files
if #interfaces == 0 then
@@ -421,11 +423,29 @@ function scripts.interface.editor(editor,split,forcedinterfaces)
return io.loaddata(fullname)
end
end)
+ -- resolve definitions
+ local definitions = { }
+ for e in xml.collected(xmlroot,"cd:interface/cd:define") do
+ definitions[e.at.name] = e.dt
+ end
+ local function resolve(root)
+ for e in xml.collected(root,"*") do
+ if e.tg == "resolve" then
+ local resolved = definitions[e.at.name or ""]
+ if resolved then
+ e.__p__.dt[e.ni] = resolved
+ resolve(resolved)
+ end
+ end
+ end
+ end
+ resolve(xmlroot)
--
for i=1,#interfaces do
local interface = interfaces[i]
local i_commands = { }
local i_environments = { }
+ local i_instances = { }
local start = elements.start[interface] or elements.start.en
local stop = elements.stop [interface] or elements.stop .en
for e in xml.collected(xmlroot,"cd:interface/cd:command") do
@@ -435,8 +455,14 @@ function scripts.interface.editor(editor,split,forcedinterfaces)
if name ~= "" then
local c = commands[name]
local n = c and (c[interface] or c.en) or name
+-- for e in xml.collected(e,"/instances") do
+-- print(n,e)
+-- end
if at.generated == "yes" then
-- skip (for now)
+-- if at.variant == "instance" then
+-- i_instances = n
+-- end
elseif type ~= "environment" then
i_commands[#i_commands+1] = n
elseif split then