diff options
author | Frederick Yin <fkfd@macaw.me> | 2020-07-22 16:55:00 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@macaw.me> | 2020-07-22 16:55:00 +0800 |
commit | 6333ef00cb5eeba691b83bbed84b7ffc2d583508 (patch) | |
tree | 30b902cdd4f2e015e66f2252b2fc509fcdcb8140 /git-gmi/utils.py | |
parent | a034660eb7f235b53f3b6051739179a06b1444f0 (diff) |
Add line number in blob view
Diffstat (limited to 'git-gmi/utils.py')
-rw-r--r-- | git-gmi/utils.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/git-gmi/utils.py b/git-gmi/utils.py new file mode 100644 index 0000000..c3dbd59 --- /dev/null +++ b/git-gmi/utils.py @@ -0,0 +1,17 @@ +import math + + +def add_line_numbers(code: str) -> str: + lines = code.splitlines() + if not lines: + return code # empty anyway + + # cannot use math.ceil() here bc lg100=2 + max_digits = math.floor(math.log10(len(lines))) + 1 + + for n, l in enumerate(lines, 1): + digits_in_n = math.floor(math.log10(n)) + 1 + spaces_before_number = max_digits - digits_in_n + lines[n - 1] = " " * spaces_before_number + str(n) + " " + l + + return "\n".join(lines) |