Browse code
feat: adjust indent formatter to word-wrap and indent nicely
Edward Langley authored on 23/10/2022 23:02:35
Showing 1 changed files
Showing 1 changed files
... | ... |
@@ -45,13 +45,26 @@ |
45 | 45 |
((%level :initarg :level :accessor level :initform 0))) |
46 | 46 |
|
47 | 47 |
(defmethod format-title ((formatter indent-formatter) (title string)) |
48 |
- (format nil "+ Title: ~a" title)) |
|
48 |
+ (format nil "~v,1,0,'*a Title: ~a" (1+ (level formatter)) "" title)) |
|
49 | 49 |
|
50 | 50 |
(defmethod format-link ((formatter indent-formatter) (link string)) |
51 |
- (format nil " Link: ~a" link)) |
|
51 |
+ (format nil "~vt Link: ~a" (1+ (level formatter)) link)) |
|
52 |
+ |
|
53 |
+ |
|
54 |
+(defun pp-fill (stream string &optional (colon? t) atsign?) |
|
55 |
+ (declare (ignore atsign?)) |
|
56 |
+ (pprint-logical-block (stream (tokens string) |
|
57 |
+ :prefix (if colon? "(" "") |
|
58 |
+ :suffix (if colon? ")" "")) |
|
59 |
+ (pprint-exit-if-list-exhausted) |
|
60 |
+ (loop |
|
61 |
+ (princ (pprint-pop) stream) |
|
62 |
+ (pprint-exit-if-list-exhausted) |
|
63 |
+ (write-char #\space stream) |
|
64 |
+ (pprint-newline :fill stream)))) |
|
52 | 65 |
|
53 | 66 |
(defmethod format-paragraph ((formatter indent-formatter) (paragraph string)) |
54 |
- (format nil "~&~v,4@t ~a~%" (level formatter) paragraph)) |
|
67 |
+ (format nil "~&~v,4@t ~/alimenta.format::pp-fill/~%" (level formatter) paragraph)) |
|
55 | 68 |
|
56 | 69 |
(defmethod format-paragraph ((formatter indent-formatter) (paragraph list)) |
57 | 70 |
(format nil "~&~{ ~a~%~}" paragraph)) |