branch: externals/ebdb
commit 7a195530ade609e04122738dd68b4a3c0c148ff1
Author: Eric Abrahamsen <[email protected]>
Commit: Eric Abrahamsen <[email protected]>
Shift base ebdb-fmt-record implementation to ebdb-formatter-freeform
* ebdb-com.el (ebdb-fmt-record): This behavior is common to most
freeform formatters.
* ebdb-format.el (ebdb-fmt-record): So define it here.
---
ebdb-com.el | 23 +----------------------
ebdb-format.el | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/ebdb-com.el b/ebdb-com.el
index 32e5bad..65b49ca 100644
--- a/ebdb-com.el
+++ b/ebdb-com.el
@@ -671,28 +671,7 @@ Print the first line, add an ellipsis, and add a tooltip."
(cl-defmethod ebdb-fmt-record ((fmt ebdb-formatter-ebdb)
(record ebdb-record))
- (pcase-let* ((header-classes (cdr (assoc (eieio-object-class-name record)
- (slot-value fmt 'header))))
- ((map header-fields body-fields)
- (seq-group-by
- (lambda (f)
- ;; FIXME: Consider doing the header/body split in
- ;; `ebdb-fmt-process-fields', we've already got the
- ;; formatter there.
- (if (ebdb-foo-in-list-p (alist-get 'class f)
- header-classes)
- 'header-fields
- 'body-fields))
- (ebdb-fmt-process-fields
- fmt record
- (ebdb-fmt-sort-fields
- fmt record
- (ebdb-fmt-collect-fields
- fmt record))))))
- (concat
- (ebdb-fmt-record-header fmt record header-fields)
- (ebdb-fmt-compose-fields fmt record body-fields 1)
- "\n")))
+ (concat (cl-call-next-method) "\n"))
(cl-defmethod ebdb-fmt-record-header ((fmt ebdb-formatter-ebdb)
(record ebdb-record)
diff --git a/ebdb-format.el b/ebdb-format.el
index 4435512..8de3f1a 100644
--- a/ebdb-format.el
+++ b/ebdb-format.el
@@ -398,6 +398,30 @@ multiple instances in a single alist."
outlist)))
(nreverse outlist))))
+(cl-defmethod ebdb-fmt-record ((fmt ebdb-formatter-freeform)
+ (record ebdb-record))
+ (pcase-let* ((header-classes (cdr (assoc (eieio-object-class-name record)
+ (slot-value fmt 'header))))
+ ((map header-fields body-fields)
+ (seq-group-by
+ (lambda (f)
+ ;; FIXME: Consider doing the header/body split in
+ ;; `ebdb-fmt-process-fields', we've already got the
+ ;; formatter there.
+ (if (ebdb-foo-in-list-p (alist-get 'class f)
+ header-classes)
+ 'header-fields
+ 'body-fields))
+ (ebdb-fmt-process-fields
+ fmt record
+ (ebdb-fmt-sort-fields
+ fmt record
+ (ebdb-fmt-collect-fields
+ fmt record))))))
+ (concat
+ (ebdb-fmt-record-header fmt record header-fields)
+ (ebdb-fmt-compose-fields fmt record body-fields 1))))
+
;; Tabular formatting
(cl-defmethod ebdb-fmt-record ((fmt ebdb-formatter-tabular)