I have a custom org link created using org-link-set-parameters. If I use org-insert-link and complete it will use the :complete function from the parameters to get the link. However I haven't found a clean way to then suggest a description based on the completed link. Do you have any suggestions?

There is org-link-make-description-function but that needs to be set before calling org-insert-link (I think?) and thus it isn't suitable for an emacs package. I tried let-binding it inside the :complete function, but that didn't work.

One thing I tried which did work, but seems a bit hacky was to add the following at the end of the :complete function:

(let ((link "mylink:this is my link"))
  (push link org-link--insert-history)
  (push `(,link "My description") org-stored-links)

Due to the way org-insert-link works this will get the description from org-stored-links. However it would then not insert the link into org-link--insert-history, so that's why I do that above.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.