diff options
author | Hans Hagen <pragma@wxs.nl> | 2017-04-08 12:28:54 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2017-04-08 12:28:54 +0200 |
commit | ea2466fe69bd082d379e95e1567f3de0b76de243 (patch) | |
tree | 70f1bdcf7d402f2ae013caebf5f4cef5f6c2baed /scripts/context/lua/mtx-interface.lua | |
parent | e32f57c9c5968f0c09130f6e24e28a96d6e1393d (diff) | |
download | context-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.lua | 26 |
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 |