Copy of org-contacts with custom patches. Should all be sent off to the maintainers.
Find a file
stardiviner f3fa9fc0b8 use less magic symbol extract code
> #+begin_src emacs-lisp
> (defun org-contacts-org-complete-function ()
>   "Function used in `completion-at-point-functions' in `org-mode' to complete @name."
>   (when-let* ((bounds (bounds-of-thing-at-point 'symbol))
>               (begin (1- (car bounds)))
>               (end (cdr bounds))
>               (symbol (buffer-substring-no-properties begin end))
>               (org-contacts-prefix-p (string-prefix-p "@" symbol))
>               ;; (prefix (substring-no-properties symbol 1 nil))
>               )
>     (when org-contacts-prefix-p
>       (list begin
>             end
>             (completion-table-dynamic
>              (lambda (_)
>                (mapcar
>                 (lambda (contact) (plist-get contact :name))
>                 (org-contacts--all-contacts))))))))
> #+end_src

This gives a `begin..end` region which presumably includes `@`.
Does (plist-get contact :name) return names that start with `@`?
If not, the completion will never match.

> And test with execute following ~add-hook~ in org-mode buffer or
>  emacs-lisp-mode buffer:

In emacs-lisp-mode, `@` has symbol syntax, so
(bounds-of-thing-at-point 'symbol)
will include `@` in the returned region, whereas in Org mode
`@` seems to have punctuation syntax so the `@` will not be included in
the returned region.

Maybe instead of `bounds-of-thing-at-point` you want to use something
less "magic", like (skip-chars-backward "[:alnum:]@").
2021-11-18 15:06:23 +08:00
org-contacts.el use less magic symbol extract code 2021-11-18 15:06:23 +08:00
README.org Add package introduction in README 2021-11-13 16:32:19 +08:00

Intro

Contacts management system for Org mode

(The public repo of original org-mode/contrib/lisp/org-contacts.el.)

Manage your contacts from Org mode and in Org mode convenient way. You can auto complete email addresses, export contacts to a vCard file, put birthdays in your Org Agenda, and more.

Screenshots

Installation

Package will be submitted to NonGNU or MELPA. Wait me have time to do this work.

Usage

Find contact in org-contacts databse

Use command [M-x org-contacts] to search.

Complete contact property with some functions support

NAME

NICK

EMAIL

BIRTHDAY