[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 8537076 052/350: Improvements to the gnorb-ebdb-or
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 8537076 052/350: Improvements to the gnorb-ebdb-org-tags field |
Date: |
Mon, 14 Aug 2017 11:46:01 -0400 (EDT) |
branch: externals/ebdb
commit 853707665071c38c61c1be1ea187395d2f36e1f4
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Improvements to the gnorb-ebdb-org-tags field
* ebdb-gnorb.el (gnorb-ebdb-org-tags): New variable holding tags seen
by EBDB, to be combined with `org-global-tags-completion-table'.
(ebdb-read): Use `completing-read-multiple' with the tags.
(ebdb-init-field): Add all field's tags to `gnorb-ebdb-org-tags'.
---
ebdb-gnorb.el | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/ebdb-gnorb.el b/ebdb-gnorb.el
index dbae6bb..b7873ca 100644
--- a/ebdb-gnorb.el
+++ b/ebdb-gnorb.el
@@ -27,6 +27,15 @@
(cl-defstruct gnorb-ebdb-link
subject date group id)
+(defvar gnorb-ebdb-org-tags nil
+ "Variable holding tags defined for EBDB records.
+
+This list is added to the result of
+`org-global-tags-completion-table' when producing a list of
+potential tags for completion.")
+
+(push '(gnorb-ebdb-field-tags ";" ";") ebdb-separator-alist)
+
(defclass gnorb-ebdb-field-messages (ebdb-field-user)
((messages
:type (list-of gnorb-ebdb-link)
@@ -46,6 +55,7 @@
((tags
:type (list-of string)
:initarg :tags
+ :custom (repeat string)
:initform nil))
:human-readable "gnorb tags")
@@ -53,8 +63,19 @@
(ebdb-concat 'gnorb-ebdb-field-tags (slot-value field 'tags)))
(cl-defmethod ebdb-read ((field (subclass gnorb-ebdb-field-tags)) &optional
slots obj)
- (let ((val (ebdb-read-string "Tags: " (when obj (ebdb-string obj))
- (org-global-tags-completion-table))))
- (cl-call-next-method field (plist-put slots :tags (split-string val)))))
+ (let* ((crm-separator (cadr (assq 'gnorb-ebdb-field-tags
ebdb-separator-alist)))
+ (val (completing-read-multiple
+ "Tags: "
+ (append (org-global-tags-completion-table)
+ (when gnorb-ebdb-org-tags
+ (mapcar #'list gnorb-ebdb-org-tags)))
+ nil nil
+ (when obj (ebdb-string obj)))))
+ (cl-call-next-method field (plist-put slots :tags val))))
+
+(cl-defmethod ebdb-init-field ((field gnorb-ebdb-field-tags) _record)
+ (let ((tags (slot-value field 'tags)))
+ (dolist (tag tags)
+ (add-to-list 'gnorb-ebdb-org-tags tag))))
(provide 'ebdb-gnorb)
- [elpa] externals/ebdb 5156eb2 079/350: Rename ebdb-display-one-record to ebdb-search-single-record, (continued)
- [elpa] externals/ebdb 5156eb2 079/350: Rename ebdb-display-one-record to ebdb-search-single-record, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 3a0048f 041/350: Stop pretended init and delete are the same for records and fields, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb ca4516b 082/350: Use mail-decode-encoded-word-string on returned MUA headers, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5910db7 065/350: Restore mail alias functionality, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 55a8c97 085/350: Split ebdb-db-disable into interactive/non-interactive functions, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb fb76dd3 032/350: Fix ebdb-search-duplicates, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a43e883 026/350: Move record initialization out of load process, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 77eb15b 037/350: Add keybinding for ebdb-search-database, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8eb2262 036/350: Add object-print method for records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 20785a1 029/350: Additions to README and manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8537076 052/350: Improvements to the gnorb-ebdb-org-tags field,
Eric Abrahamsen <=
- [elpa] externals/ebdb 6568bbf 053/350: Straighten out ebdb-separator-alist, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9791ed5 030/350: Merge branch 'buff', Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 49b422e 035/350: Remove mentions and bindings for ebdb-do-all-records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 11fe701 047/350: Name classes now inherit from ebdb-field-user, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 784f45c 060/350: New function ebdb-prompt-for-mail, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a712f52 050/350: Update ebdb-pgp, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 118f567 062/350: Add a "defunct" arg to ebdb-record-mail, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 90cb02a 068/350: Remove ebdb-mail-address, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb decfc94 073/350: Update company-ebdb to work, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 47ac653 066/350: Fix autoload for ebdb-org-field-tags definition, Eric Abrahamsen, 2017/08/14