[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org-contacts 1a6554bb2a 2/4: Add a function `org-contac
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org-contacts 1a6554bb2a 2/4: Add a function `org-contacts-search-contact` for search name in org-contacts database. |
Date: |
Tue, 3 Dec 2024 15:59:03 -0500 (EST) |
branch: externals/org-contacts
commit 1a6554bb2afc684701a289f284ee425960944425
Author: stardiviner <numbchild@gmail.com>
Commit: stardiviner <numbchild@gmail.com>
Add a function `org-contacts-search-contact` for search name in
org-contacts database.
---
org-contacts.el | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/org-contacts.el b/org-contacts.el
index 14d22f5add..13a75ec5ac 100644
--- a/org-contacts.el
+++ b/org-contacts.el
@@ -310,6 +310,24 @@ buffer."
(progress-reporter-done progress-reporter)))
org-contacts-db))
+(defun org-contacts-search-contact (name)
+ "Search contact NAME in cached database and return org element POM."
+ (let (epom)
+ (dolist (contact (org-contacts-all-contacts) epom)
+ (when (string-equal (plist-get contact :name) name)
+ (with-current-buffer (find-file-noselect (expand-file-name (car
org-contacts-files)))
+ (or (save-excursion
+ (goto-char (plist-get contact :position))
+ (setq epom (org-element-context)))
+ (progn
+ (org-goto-marker-or-bmk (org-find-exact-headline-in-buffer
name))
+ (setq epom (org-element-context)))))))
+ epom))
+
+;;; TEST:
+;; (org-contacts-search-contact "stardiviner")
+;; (org-element-property :title (org-contacts-search-contact "stardiviner"))
+
(defun org-contacts-at-point (&optional pom)
"Return the contacts at point or marker POM or current position."
(setq pom (or pom (point)))
@@ -1436,7 +1454,7 @@ are effectively trimmed. If nil, all zero-length
substrings are retained."
(cdr (reverse proplist))))
-;; Add an Org link type `org-contact:' for easy jump to or searching
org-contacts headline.
+;;; Add an Org link type `org-contact:' for easy jump to or searching
org-contacts headline.
;; link spec: [[org-contact:query][desc]]
;;;###autoload
(if (fboundp 'org-link-set-parameters)