emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Allow external libraries (org-roam) to supply org-id locatio


From: Ihor Radchenko
Subject: Re: [PATCH] Allow external libraries (org-roam) to supply org-id locations
Date: Sun, 17 Mar 2024 10:17:54 +0000

"Rick Lupton" <mail@ricklupton.name> writes:

> On Wed, 13 Mar 2024, at 12:30 PM, Ihor Radchenko wrote:
>> I think that we can do it simpler. [...]
>> The idea is to use Emacs' advice machinery to allow third-party code
>> alter the functions stored in link parameters.
>
> I was avoiding this because I thought it was only recommended (in the elisp 
> manual) to use advice directly by users, not in libraries (like, I assume, 
> org-roam):
>
>> If you are writing code for release, for others to use, try to avoid 
>> including advice in it. If the function you want to advise has no hook to do 
>> the job, please talk with the Emacs developers about adding a suitable hook. 
>> Especially, Emacs’s own source files should not put advice on functions in 
>> Emacs. (There are currently a few exceptions to this convention, but we aim 
>> to correct them.) It is generally cleaner to create a new hook in foo, and 
>> make bar use the hook, than to have bar put advice in foo.
>
> (https://www.gnu.org/software/emacs/manual/html_node/elisp/Advising-Named-Functions.html)

This is absolutely right, but only when advising named functions. What
we are talking about is advising the link property value. In my previous
discussions with Emacs devs, I was told that it superior to use advice
system when a library wants to modify a function stored as a value of a
variable - see
https://yhetil.org/emacs-devel/SJ0PR10MB548885B715C9875726F70F61F34FA@SJ0PR10MB5488.namprd10.prod.outlook.com/

> But I don't mind either way.  I agree your approach is simpler if it's a 
> reasonable way for a third party library like org-roam to extend the org id 
> functions.

I added the setter on main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=d545ad606

We may also want to document the `add-function' approach in the manual.
Maybe in a new section "Modifying Hyperlink Types", right after "Adding
Hyperlink Types".

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]