diff --git a/src/hackerbase.scm b/src/hackerbase.scm index 90419d0..6310851 100644 --- a/src/hackerbase.scm +++ b/src/hackerbase.scm @@ -127,6 +127,8 @@ (-action- 'print-info)) (-print () "Print given member file" (-action- 'print-member-file)) + (-blame () "Print annotated member file" + (-action- 'blame-member-file)) (-fees () "Prints fees table" (-needs-bank- #t) (-action- 'fees)) @@ -272,6 +274,12 @@ (print-member-source mr)) (else (print "No member specified!")))) + ((blame-member-file) + (cond (mr + (newline) + (print-member-blame mr)) + (else + (print "No member specified!")))) ((print-idstats) (newline) (print-members-ids-stats MB) diff --git a/src/members-print.scm b/src/members-print.scm index 72f0e17..86ca106 100644 --- a/src/members-print.scm +++ b/src/members-print.scm @@ -31,6 +31,7 @@ ( print-member-table print-member-source + print-member-blame member-records->string print-members-base-table print-members-base-stats @@ -165,6 +166,18 @@ #:context -1 ))) + ;; Nicely prints the member annotated source with any errors recorded. + (define (print-member-blame mr) + (let* ((lines (brmember-source mr)) + (file-name (ldict-ref mr 'file-name)) + (hls (ldict-ref mr 'highlights '()))) + (print file-name ":") + (print-source-listing + lines + hls + #:context -1 + ))) + ;; Prints nicely printed payments (define (member-payments->table mr) (table->string (cons