D3665: graph: improve graph output by using Unicode characters
johnstiles (John Stiles)
phabricator at mercurial-scm.org
Mon May 28 23:25:13 UTC 2018
johnstiles updated this revision to Diff 8919.
johnstiles added a comment.
Addressed warnings found by test-check-code.t.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3665?vs=8918&id=8919
REVISION DETAIL
https://phab.mercurial-scm.org/D3665
AFFECTED FILES
hgext/beautifygraph.py
CHANGE DETAILS
diff --git a/hgext/beautifygraph.py b/hgext/beautifygraph.py
--- a/hgext/beautifygraph.py
+++ b/hgext/beautifygraph.py
@@ -2,7 +2,7 @@
# beautifygraph.py - improve graph output by using Unicode characters
'''This extension beautifies log -G output by using Unicode characters.
-
+
A terminal with UTF-8 support and a monospace Unicode font are required.
'''
@@ -20,40 +20,42 @@
testedwith = 'ships-with-hg-core'
def extsetup(ui):
- def convertedges(line):
- def prettyedge(before, edge, after):
- if edge == '~': return '\xE2\x95\xA7' # U+2567 ╧
- if edge == 'X': return '\xE2\x95\xB3' # U+2573 ╳
- if edge == '/': return '\xE2\x95\xB1' # U+2571 ╱
- if edge == '-': return '\xE2\x94\x80' # U+2500 ─
- if edge == '|': return '\xE2\x94\x82' # U+2502 │
- if edge == ':': return '\xE2\x94\x86' # U+2506 ┆
- if edge == '\\': return '\xE2\x95\xB2' # U+2572 ╲
- if edge == '+':
- if before == ' ' and not after == ' ': return '\xE2\x94\x9C' # U+251C ├
- if after == ' ' and not before == ' ': return '\xE2\x94\xA4' # U+2524 ┤
- return '\xE2\x94\xBC' # U+253C ┼
- return edge
+ def convertedges(line):
+ def prettyedge(before, edge, after):
+ if edge == '~': return '\xE2\x95\xA7' # U+2567 ╧
+ if edge == 'X': return '\xE2\x95\xB3' # U+2573 ╳
+ if edge == '/': return '\xE2\x95\xB1' # U+2571 ╱
+ if edge == '-': return '\xE2\x94\x80' # U+2500 ─
+ if edge == '|': return '\xE2\x94\x82' # U+2502 │
+ if edge == ':': return '\xE2\x94\x86' # U+2506 ┆
+ if edge == '\\': return '\xE2\x95\xB2' # U+2572 ╲
+ if edge == '+':
+ if before == ' ' and not after == ' ':
+ return '\xE2\x94\x9C' # U+251C ├
+ if after == ' ' and not before == ' ':
+ return '\xE2\x94\xA4' # U+2524 ┤
+ return '\xE2\x94\xBC' # U+253C ┼
+ return edge
line = ' %s ' % line
- pretty = [];
+ pretty = []
for idx in xrange(len(line) - 2):
- pretty.append(prettyedge(line[idx], line[idx+1], line[idx+2]))
+ pretty.append(prettyedge(line[idx], line[idx + 1], line[idx + 2]))
return ''.join(pretty)
-
- def getprettygraphnode(orig, *args, **kwargs):
- node = orig(*args, **kwargs)
- if node == 'o': return '\xE2\x97\xAF' # U+25EF ◯
- if node == '@': return '\xE2\x8C\xBE' # U+233E ⌾
- if node == '*': return '\xE2\x88\x97' # U+2217 ∗
- if node == 'x': return '\xE2\x97\x8C' # U+25CC ◌
- if node == '_': return '\xE2\x95\xA4' # U+2564 ╤
- return node
- def outputprettygraph(orig, ui, graph, *args, **kwargs):
- if not ui.plain('graph') and encoding.encoding == "UTF-8":
- (edges, text) = zip(*graph)
- graph = zip([convertedges(e) for e in edges], text)
- return orig(ui, graph, *args, **kwargs)
+ def getprettygraphnode(orig, *args, **kwargs):
+ node = orig(*args, **kwargs)
+ if node == 'o': return '\xE2\x97\xAF' # U+25EF ◯
+ if node == '@': return '\xE2\x8C\xBE' # U+233E ⌾
+ if node == '*': return '\xE2\x88\x97' # U+2217 ∗
+ if node == 'x': return '\xE2\x97\x8C' # U+25CC ◌
+ if node == '_': return '\xE2\x95\xA4' # U+2564 ╤
+ return node
- extensions.wrapfunction(graphmod, 'outputgraph', outputprettygraph)
- extensions.wrapfunction(templatekw, 'getgraphnode', getprettygraphnode)
+ def outputprettygraph(orig, ui, graph, *args, **kwargs):
+ if not ui.plain('graph') and encoding.encoding == "UTF-8":
+ (edges, text) = zip(*graph)
+ graph = zip([convertedges(e) for e in edges], text)
+ return orig(ui, graph, *args, **kwargs)
+
+ extensions.wrapfunction(graphmod, 'outputgraph', outputprettygraph)
+ extensions.wrapfunction(templatekw, 'getgraphnode', getprettygraphnode)
To: johnstiles, #hg-reviewers
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list