From d545ad60686de3cec6a2626b7761e3abde9acafd Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Sun, 17 Mar 2024 13:06:11 +0300 Subject: [PATCH] lisp/ol.el: Make `org-link-get-parameter' a valid PLACE for `setf' * lisp/ol.el (org-link-get-parameter): Define setter. This allows modifying link parameters with `setf' and altering them via `add-function'. Link: https://orgmode.org/list/a123389c-8f86-4836-a4fe-1e3f4281d33b@app.fastmail.com --- lisp/ol.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lisp/ol.el b/lisp/ol.el index fa16b5920..1a6a84447 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -923,6 +923,13 @@ PARAMETERS should be keyword value pairs. See (org-link-make-regexps) (when (featurep 'org-element) (org-element-update-syntax))))) +;; This way, one can add multiple functions as, say, :follow parameter. +;; For example, +;; (add-function :before-until (org-link-get-parameter "id" :follow) #'my-function) +;; See https://orgmode.org/list/a123389c-8f86-4836-a4fe-1e3f4281d33b@app.fastmail.com +(gv-define-setter org-link-get-parameter (value type key) + `(org-link-set-parameters ,type ,key ,value)) + (defun org-link-make-regexps () "Update the link regular expressions. This should be called after the variable `org-link-parameters' has changed."