Fix colorized branch alignment in 'git cl status'
Change-Id: Ie32057ecabc3839273c74c08bef95515b7522ea4
Reviewed-on: https://chromium-review.googlesource.com/c/1468381
Commit-Queue: Daniel McArdle <dmcardle@chromium.org>
Auto-Submit: Daniel McArdle <dmcardle@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/git_cl.py b/git_cl.py
index ba32f71..97f4372 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -3962,8 +3962,15 @@
if colorize:
return asterisk + color + branch_name + Fore.RESET
- else:
- return branch_name
+ return asterisk + branch_name
+
+ def LeftPadColorfulString(string_plain, string_colorful, alignment):
+ """Pad string_colorful with spaces until it hits alignment. Use string_plain
+ to compute required number of spaces."""
+
+ padding_amount = alignment - len(string_plain)
+ padding = ' ' * padding_amount
+ return padding + string_colorful
branch_statuses = {}
@@ -3985,9 +3992,14 @@
color = ''
reset = ''
status_str = '(%s)' % status if status else ''
- print(' %*s : %s%s %s%s' % (
- alignment, FormatBranchName(branch, colorize=True), color, url,
- status_str, reset))
+
+ branch_display_plain = FormatBranchName(branch)
+ branch_display_color = FormatBranchName(branch, colorize=True)
+ padded_branch_name = LeftPadColorfulString(branch_display_plain,
+ branch_display_color, alignment)
+
+ print(' %s : %s%s %s%s' % (
+ padded_branch_name, color, url, status_str, reset))
print()