Mercurial > hg
changeset 42233:4ad191041be2
histedit: Show file names in multiple line format
author | Yu Feng <rainwoodman@gmail.com> |
---|---|
date | Thu, 02 May 2019 16:43:34 -0700 |
parents | d345627d104b |
children | c4a50e863ee2 |
files | hgext/histedit.py |
diffstat | 1 files changed, 27 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/histedit.py Sat Apr 06 17:46:19 2019 +0200 +++ b/hgext/histedit.py Thu May 02 16:43:34 2019 -0700 @@ -1227,6 +1227,15 @@ else: win.addstr(y, x, line) +def _trunc_head(line, n): + if len(line) <= n: + return line + return '> ' + line[-(n - 2):] +def _trunc_tail(line, n): + if len(line) <= n: + return line + return line[:n - 2] + ' >' + def patchcontents(state): repo = state['repo'] rule = state['rules'][state['pos']] @@ -1284,11 +1293,23 @@ line = "bookmark: {0}".format(' '.join(bms)) win.addstr(3, 1, line[:length]) - line = "files: {0}".format(','.join(ctx.files())) + line = "summary: {0}".format(ctx.description().splitlines()[0]) win.addstr(4, 1, line[:length]) - line = "summary: {0}".format(ctx.description().splitlines()[0]) - win.addstr(5, 1, line[:length]) + line = "files: " + win.addstr(5, 1, line) + fnx = 1 + len(line) + fnmaxx = length - fnx + 1 + y = 5 + fnmaxn = maxy - (1 + y) - 1 + files = ctx.files() + for i, line1 in enumerate(files): + if len(files) > fnmaxn and i == fnmaxn - 1: + win.addstr(y, fnx, _trunc_tail(','.join(files[i:]), fnmaxx)) + y = y + 1 + break + win.addstr(y, fnx, _trunc_head(line1, fnmaxx)) + y = y + 1 conflicts = rule.conflicts if len(conflicts) > 0: @@ -1297,7 +1318,7 @@ else: conflictstr = 'no overlap' - win.addstr(6, 1, conflictstr[:length]) + win.addstr(y, 1, conflictstr[:length]) win.noutrefresh() def helplines(mode): @@ -1379,9 +1400,9 @@ maxy, maxx = stdscr.getmaxyx() helplen = len(helplines(mode)) return { - 'commit': (8, maxx), + 'commit': (12, maxx), 'help': (helplen, maxx), - 'main': (maxy - helplen - 8, maxx), + 'main': (maxy - helplen - 12, maxx), } def drawvertwin(size, y, x):