diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/node-dir.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/node-dir.lua | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua deleted file mode 100644 index 762f20739da..00000000000 --- a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua +++ /dev/null @@ -1,114 +0,0 @@ -if not modules then modules = { } end modules ['node-dir'] = { - version = 1.001, - comment = "companion to node-ini.mkiv", - author = "Hans Hagen", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local nodes = nodes -local nuts = nodes.nuts - -local normaldir_code = nodes.dircodes.normal -local line_code = nodes.listcodes.line -local lefttoright_code = nodes.dirvalues.lefttoright - -local getnext = nuts.getnext -local getlist = nuts.getlist -local getwhd = nuts.getwhd -local getdirection = nuts.getdirection - -local setlist = nuts.setlist - -local nextdir = nuts.traversers.dir -local nexthlist = nuts.traversers.hlist - -local rangedimensions = nuts.rangedimensions -local insert_before = nuts.insert_before - -local new_rule = nuts.pool.rule -local new_kern = nuts.pool.kern - -local setcolor = nodes.tracers.colors.set -local settransparency = nodes.tracers.transparencies.set - --- local function dirdimensions(parent,begindir) -- can be a helper --- local level = 1 --- local enddir = begindir --- local width = 0 --- for current, subtype in nextdir, getnext(begindir) do --- if subtype == normaldir_code then -- todo --- level = level + 1 --- else --- level = level - 1 --- end --- if level == 0 then -- does the type matter --- enddir = current --- width = rangedimensions(parent,begindir,enddir) --- return width, enddir --- end --- end --- if enddir == begindir then --- width = rangedimensions(parent,begindir) --- end --- return width, enddir --- end - -local function dirdimensions(parent,begindir) -- can be a helper - local level = 1 - local lastdir = nil - local width = 0 - for current, subtype in nextdir, getnext(begindir) do - if subtype == normaldir_code then -- todo - level = level + 1 - else - level = level - 1 - end - if level == 0 then -- does the type matter - return (rangedimensions(parent,begindir,current)), current - end - end - return (rangedimensions(parent,begindir)), begindir -end - -nuts.dirdimensions = dirdimensions - -local function colorit(list,current,dir,w,h,d) - local rule = new_rule(w,h,d) - local kern = new_kern(-w) - local color = dir == lefttoright_code and "trace:s" or "trace:o" - setcolor(rule,color) - settransparency(rule,color) - list, current = insert_before(list,current,kern) - list, current = insert_before(list,current,rule) - return list, current -end - -function nodes.tracers.directions(head) - for hlist, subtype in nexthlist, head do - if subtype == line_code then - local list = getlist(hlist) - local w, h, d = getwhd(hlist) - list = colorit(list,list,getdirection(hlist),w,h,d) - for current in nextdir, list do - local dir, cancel = getdirection(current) - if not cancel then - local width = dirdimensions(hlist,current) - list = colorit(list,current,dir,width,h,d) - end - end - setlist(hlist,list) - end - end - return head -end - -local enabled = false - -trackers.register("nodes.directions", function(v) - if not enabled then - enabled = true - nodes.tasks.appendaction("finalizers","after","nodes.tracers.directions",nil,"nut","enabled") - end - nodes.tasks.setaction(v) -end) |