I was looking through all the changes needed to centralize the link code we have been discussing.
One point we didn't discuss yet is the org-store-link-functions. These could be stored in a :store property in `org-link-parameters'. Instead of a variable for org-store-link-functions we could generate it on demand from org-link-parameters. Changing this isn't difficult, we just remove the add-hook lines below, and add :store 'func to the link definition. Right now, I expect this will look something like this: (org-add-link-type "bbdb" 'org-bbdb-open 'org-bbdb-export :store 'org-bbdb-store-link) I listed the places impacted by this below. As you can see, some are "core" and some are "contrib". Is there a protocol for modifying the contrib code? While thinking about this, would it be desirable for each of these changes to each file be a separate commit? Thanks, ./lisp/org-bbdb.el::200:(add-hook 'org-store-link-functions 'org-bbdb-store-link) ./lisp/org-bibtex.el:456:(add-hook 'org-store-link-functions 'org-bibtex-store-link) ./lisp/org-docview.el:53:(add-hook 'org-store-link-functions 'org-docview-store-link) ./lisp/org-eshell.el:31:(add-hook 'org-store-link-functions 'org-eshell-store-link) ./lisp/org-gnus.el:78:(add-hook 'org-store-link-functions 'org-gnus-store-link) ./lisp/org-id.el:636:;; so we do have to add it to `org-store-link-functions'. ./lisp/org-info.el:44:(add-hook 'org-store-link-functions 'org-info-store-link) ./lisp/org-irc.el:74:(add-to-list 'org-store-link-functions 'org-irc-store-link) ./lisp/org-mhe.el:78:(add-hook 'org-store-link-functions 'org-mhe-store-link) ./lisp/org-rmail.el:47:(add-hook 'org-store-link-functions 'org-rmail-store-link) ./lisp/org-w3m.el:49:(add-hook 'org-store-link-functions 'org-w3m-store-link) ./contrib/lisp/org-bookmark.el:51:(add-hook 'org-store-link-functions 'org-bookmark-store-link) ./contrib/lisp/org-ebib.el:27:(add-hook 'org-store-link-functions 'org-ebib-store-link) ./contrib/lisp/org-elisp-symbol.el:82:(add-hook 'org-store-link-functions 'org-elisp-symbol-store-link) ./contrib/lisp/org-eww.el:51:(add-hook 'org-store-link-functions 'org-eww-store-link) ./contrib/lisp/org-git-link.el:193:(add-hook 'org-store-link-functions 'org-git-store-link) ./contrib/lisp/org-mairix.el:86:(add-hook 'org-store-link-functions 'org-mairix-store-gnus-link) ./contrib/lisp/org-man.el:29:(add-hook 'org-store-link-functions 'org-man-store-link) ./contrib/lisp/org-mew.el:152:(add-hook 'org-store-link-functions 'org-mew-store-link) ./contrib/lisp/org-notmuch.el:69:(add-hook 'org-store-link-functions 'org-notmuch-store-link) ./contrib/lisp/org-notmuch.el:102:(add-hook 'org-store-link-functions 'org-notmuch-search-store-link) ./contrib/lisp/org-velocity.el:558: "Function for `org-store-link-functions'." ./contrib/lisp/org-velocity.el:563:(add-hook 'org-store-link-functions 'org-velocity-store-link) ./contrib/lisp/org-vm.el:60:(add-hook 'org-store-link-functions 'org-vm-store-link) ./contrib/lisp/org-wl.el:113:(add-hook 'org-store-link-functions 'org-wl-store-link) -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu