From: Takaaki Ishikawa <takaxp@ieee.org>
To: orgmode list <emacs-orgmode@gnu.org>
Subject: [PATCH] Add a custom list in org-mac-link.el
Date: Sun, 11 Jun 2017 17:25:36 +0900 [thread overview]
Message-ID: <CAJsv8TF0pfBBrj0nnL0GgsuqNoW2e60XsC9xxSvk79ukKMtLMw@mail.gmail.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 1658 bytes --]
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
[*1] http://papersapp.com/mac/
--
Takaaki ISHIKAWA <takaxp@ieee.org>
[-- Attachment #1.2: Type: text/html, Size: 2457 bytes --]
[-- Attachment #2: org-mac-link.diff --]
[-- Type: text/plain, Size: 3005 bytes --]
diff --git a/contrib/lisp/org-mac-link.el b/contrib/lisp/org-mac-link.el
index 8ba485d..fa424e0 100644
--- a/contrib/lisp/org-mac-link.el
+++ b/contrib/lisp/org-mac-link.el
@@ -217,6 +217,26 @@
:group 'org-mac-link
:type 'string)
+(defcustom org-mac-link-descriptors
+ `(("F" "inder" org-mac-finder-insert-selected ,org-mac-grab-Finder-app-p)
+ ("m" "ail" org-mac-message-insert-selected ,org-mac-grab-Mail-app-p)
+ ("d" "EVONthink Pro Office" org-mac-devonthink-item-insert-selected
+ ,org-mac-grab-devonthink-app-p)
+ ("o" "utlook" org-mac-outlook-message-insert-selected ,org-mac-grab-Outlook-app-p)
+ ("a" "ddressbook" org-mac-addressbook-insert-selected ,org-mac-grab-Addressbook-app-p)
+ ("s" "afari" org-mac-safari-insert-frontmost-url ,org-mac-grab-Safari-app-p)
+ ("f" "irefox" org-mac-firefox-insert-frontmost-url ,org-mac-grab-Firefox-app-p)
+ ("v" "imperator" org-mac-vimperator-insert-frontmost-url ,org-mac-grab-Firefox+Vimperator-p)
+ ("c" "hrome" org-mac-chrome-insert-frontmost-url ,org-mac-grab-Chrome-app-p)
+ ("e" "evernote" org-mac-evernote-note-insert-selected ,org-mac-grab-Evernote-app-p)
+ ("t" "ogether" org-mac-together-insert-selected ,org-mac-grab-Together-app-p)
+ ("S" "kim" org-mac-skim-insert-page ,org-mac-grab-Skim-app-p)
+ ("A" "crobat" org-mac-acrobat-insert-page ,org-mac-grab-Acrobat-app-p))
+ "Descriptors to select an application."
+ :tag "A list of descriptors"
+ :group 'org-mac-link'
+ :type 'symbol)
+
\f
;; In mac.c, removed in Emacs 23.
(declare-function do-applescript "org-mac-message" (script))
@@ -238,21 +258,7 @@
"Prompt for an application to grab a link from.
When done, go grab the link, and insert it at point."
(interactive)
- (let* ((descriptors
- `(("F" "inder" org-mac-finder-insert-selected ,org-mac-grab-Finder-app-p)
- ("m" "ail" org-mac-message-insert-selected ,org-mac-grab-Mail-app-p)
- ("d" "EVONthink Pro Office" org-mac-devonthink-item-insert-selected
- ,org-mac-grab-devonthink-app-p)
- ("o" "utlook" org-mac-outlook-message-insert-selected ,org-mac-grab-Outlook-app-p)
- ("a" "ddressbook" org-mac-addressbook-insert-selected ,org-mac-grab-Addressbook-app-p)
- ("s" "afari" org-mac-safari-insert-frontmost-url ,org-mac-grab-Safari-app-p)
- ("f" "irefox" org-mac-firefox-insert-frontmost-url ,org-mac-grab-Firefox-app-p)
- ("v" "imperator" org-mac-vimperator-insert-frontmost-url ,org-mac-grab-Firefox+Vimperator-p)
- ("c" "hrome" org-mac-chrome-insert-frontmost-url ,org-mac-grab-Chrome-app-p)
- ("e" "evernote" org-mac-evernote-note-insert-selected ,org-mac-grab-Evernote-app-p)
- ("t" "ogether" org-mac-together-insert-selected ,org-mac-grab-Together-app-p)
- ("S" "kim" org-mac-skim-insert-page ,org-mac-grab-Skim-app-p)
- ("A" "crobat" org-mac-acrobat-insert-page ,org-mac-grab-Acrobat-app-p)))
+ (let* ((descriptors org-mac-link-descriptors)
(menu-string (make-string 0 ?x))
input)
next reply other threads:[~2017-06-11 8:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-11 8:25 Takaaki Ishikawa [this message]
2017-06-14 16:37 ` [PATCH] Add a custom list in org-mac-link.el Nicolas Goaziou
2017-06-15 13:56 ` Takaaki Ishikawa
2017-06-15 16:32 ` Nicolas Goaziou
2017-06-15 18:38 ` Takaaki Ishikawa
2017-06-15 19:03 ` Nicolas Goaziou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAJsv8TF0pfBBrj0nnL0GgsuqNoW2e60XsC9xxSvk79ukKMtLMw@mail.gmail.com \
--to=takaxp@ieee.org \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.