Integrate git blame with highlighting.

This commit is contained in:
Dominik Pantůček 2023-05-15 19:40:24 +02:00
parent ac4471bfc3
commit 83d0917e7a
5 changed files with 27 additions and 9 deletions

View file

@ -355,7 +355,8 @@ specification.o: specification.import.scm
specification.import.scm: $(SPECIFICATION-SOURCES)
UTIL-GIT-SOURCES=util-git.scm util-io.import.scm \
util-dict-list.import.scm util-parser.import.scm
util-dict-list.import.scm util-parser.import.scm \
util-time.import.scm
util-git.o: util-git.import.scm
util-git.import.scm: $(UTIL-GIT-SOURCES)

View file

@ -199,7 +199,12 @@
post-str)
""))
(else
"xxx")))
(format "~A~A ~A"
pre-str
(if (ldict? line)
(ldict-ref line key "--")
"**")
post-str))))
keys)
rtbl)))
(loop (cdr lines)

View file

@ -180,7 +180,7 @@
blame
hls
#:context -1
#:keys '(commit number line comment)
#:keys '(committer-time number line comment)
)))
;; Prints nicely printed payments

View file

@ -38,7 +38,8 @@
(chicken string)
util-io
util-dict-list
util-parser)
util-parser
util-time)
;; Valid git operating modes
(define git-modes
@ -128,9 +129,15 @@
blames))))
(else
;; Any header
(let ((kv (parser-parse-line line)))
(let* ((kv (parser-parse-line line))
(k (car kv))
(v (cdr kv))
(v1 (case k
((committer-time)
(seconds->iso-date-string (string->number v)))
(else v))))
(loop (cdr lines)
(ldict-set blame (car kv) (cdr kv))
(ldict-set blame k v1)
blames))))))))
)

View file

@ -29,6 +29,7 @@
util-time
(
current-util-milliseconds
seconds->iso-date-string
today/iso
)
@ -49,9 +50,9 @@
(else
(current-process-milliseconds))))
;; Returns today as YYYY-MM-DD string
(define (today/iso)
(let ((d (seconds->local-time)))
;; Converts seconds since epoch to ISO date string
(define (seconds->iso-date-string . args)
(let ((d (apply seconds->local-time args)))
(format "~A-~A-~A"
(number->string
(+ 1900 (vector-ref d 5)))
@ -64,5 +65,9 @@
(+ 100 (vector-ref d 3)))
1))))
;; Returns today as YYYY-MM-DD string
(define (today/iso)
(seconds->iso-date-string))
)