summaryrefslogtreecommitdiff
path: root/git-gmi/utils.py
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@macaw.me>2020-07-22 16:55:00 +0800
committerFrederick Yin <fkfd@macaw.me>2020-07-22 16:55:00 +0800
commit6333ef00cb5eeba691b83bbed84b7ffc2d583508 (patch)
tree30b902cdd4f2e015e66f2252b2fc509fcdcb8140 /git-gmi/utils.py
parenta034660eb7f235b53f3b6051739179a06b1444f0 (diff)
Add line number in blob view
Diffstat (limited to 'git-gmi/utils.py')
-rw-r--r--git-gmi/utils.py17
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)