Dear folks,
The attached patch includes a change for adding a custom variable to easily extend link grabbing capabilities for masOS user. When someone wants to add an additional menu to call an external application, it will be possible by adding a setting to the proposed variable as follows:
#+BEGIN_SRC emacs-lisp
(add-to-list 'org-mac-link-descriptors
`("P" "apers" org-mac-papers-insert-frontmost-paper-link ,org-mac-grab-Papers-app-p) t)
#+END_SRC
This example intends to handle Papers.app, not freeware[*1], in macOS. If `org-mac-papers-insert-frontmost-paper-link' and `mac-grab-Papers-app-p' are implemented by user correctly, an appropriate link will be inserted into an org buffer. I don't want put such codes to `org-mac-link.el' directly to avoid unnecessary increase of file size. This scenario can be applied to other applications.
The inserted link can be opened by `C-c C-o' if the corresponding link type is configured by `org-link-set-parameters' like the following.
#+BEGIN_SRC emacs-lisp
(org-link-set-parameters
"papers3"
:follow (lambda (path)
(let ((cmd (concat "open papers3:" path)))
(shell-command-to-string cmd)
(message "%s" cmd))))
#+END_SRC
===================================================
* contrib/lisp/org-mac-link.el: Add a custom list for link descriptors
`org-mac-link-descriptors' is added to extend link grabbing capabilities.
Modified from a patch proposal by Takaaki Ishikawa.
===================================================
Kind regards,
Takaaki
--