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) specification.import.scm: $(SPECIFICATION-SOURCES)
UTIL-GIT-SOURCES=util-git.scm util-io.import.scm \ 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.o: util-git.import.scm
util-git.import.scm: $(UTIL-GIT-SOURCES) util-git.import.scm: $(UTIL-GIT-SOURCES)

View file

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

View file

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

View file

@ -38,7 +38,8 @@
(chicken string) (chicken string)
util-io util-io
util-dict-list util-dict-list
util-parser) util-parser
util-time)
;; Valid git operating modes ;; Valid git operating modes
(define git-modes (define git-modes
@ -128,9 +129,15 @@
blames)))) blames))))
(else (else
;; Any header ;; 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) (loop (cdr lines)
(ldict-set blame (car kv) (cdr kv)) (ldict-set blame k v1)
blames)))))))) blames))))))))
) )

View file

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