Source code for leo.plugins.trace_tags
#@+leo-ver=5-thin
#@+node:edream.110203113231.738: * @file trace_tags.py
''' Trace most common hooks, but not key, drag or idle hooks.'''
import leo.core.leoGlobals as g
tagCount = 0
#@+others
#@+node:ekr.20050303073056.1: ** init
[docs]def init():
'''Return True if the plugin has loaded successfully.'''
ok = not g.app.unitTesting
if ok:
g.registerHandler("all", trace_tags)
g.plugin_signon(__name__)
return ok
#@+node:edream.110203113231.739: ** trace_tags (trace_tags.py)
[docs]def trace_tags(tag, keywords):
global tagCount; brief = True
tagCount += 1 # Always count the hook.
# List of hooks to suppress.
if tag in (
'bodykey1', 'bodykey2', 'dragging1', 'dragging2',
'headkey1', 'headkey2',
'idle',
'after-redraw-outline', 'redraw-entire-outline',
'draw-outline-text-box', 'draw-outline-icon',
'draw-outline-node', 'draw-outline-box', 'draw-sub-outline',
):
return
# Almost all tags have both c and v keys in the keywords dict.
if tag not in ('start1', 'end1', 'open1', 'open2', 'idle'):
c = keywords.get('c')
v = keywords.get('v')
if not c:
g.pr(tagCount, tag, 'c = None')
if not v:
if tag not in ('select1', 'select2', 'select3', 'unselect1', 'unselect2'):
g.pr(tagCount, tag, 'v = None')
# Hook-specific traces...
if tag in ('command1', 'command2'):
g.pr(tagCount, tag, keywords.get('label'))
elif tag in ('open1', 'open2'):
g.pr(tagCount, tag, keywords.get('fileName'))
elif brief:
g.pr(tagCount, tag)
else: # Verbose
keys = list(keywords.items())
keys.sort()
for key, value in keys:
g.pr(tagCount, tag, key, value)
g.pr('')
#@-others
#@@language python
#@@tabwidth -4
#@-leo