From: Win Treese <treese@acm.org>
To: "Berry, Charles" <ccberry@ucsd.edu>
Cc: "Emacs-orgmode@gnu.org" <Emacs-orgmode@gnu.org>
Subject: Re: open link in source code block
Date: Wed, 16 Jan 2019 18:43:02 -0500 [thread overview]
Message-ID: <2C9824E1-C291-475C-820A-B0F83A5E6619@acm.org> (raw)
In-Reply-To: <00803EED-3898-4FA2-803E-245F45F897FE@ucsd.edu>
[Quoting trimmed for the most relevant context.]
> On Jan 11, 2019, at 7:12 PM, Berry, Charles <ccberry@ucsd.edu> wrote:
>
>> On Jan 5, 2019, at 7:41 AM, Win Treese <treese@acm.org> wrote:
>>
>>> On Jan 5, 2019, at 5:25 AM, Eric S Fraga <esflists@gmail.com> wrote:
>>>
>>> On Friday, 4 Jan 2019 at 19:38, Win Treese wrote:
>>>> Suppose I have the following Org file contents:
>>>>
>>>> * test
>>>>
>>>> #+BEGIN_SRC emacs-lisp
>>>> (setq yyy 3)
>>>> ;; See https://www.gnu.org
>>>> #+END_SRC
>>>>
>>>> The URL for gnu.org is highlighted as a clickable link. But if I click
>>>> it, the source block is evaluated. This seems rather unexpected,
>>>> especially since my intention was to open the link.
>>>
>>> Probably expected albeit maybe not your preferred behaviour; all about
>>> precedence. In any case, I would suggest that the easy solution would
>>> be to move such links out of the src block.
>> This seems like a slightly bigger problem, though: clicking on a highlighted
>> link doesn’t just fail to open the link, it executes the source block, which can
>> have very unintended side effects.
>>
>> I wonder if the issue is an artifact of implementation rather than intentional
>> design: org-open-at-mouse sets point to the location of the click and then
>> calls org-open-at-point. The documentation at points says that C-c C-o in
>> a source block opens the results of evaluation (fair enough, although the
>> docstring does not).
>>
>> So the problem seems to be about the mouse click behavior, not the basic
>> function of org-open-at-point.
>
> AFAICS, the issue is with org-open-at-point.
>
> If you really want to `fix' this, there is a hook that allows customization of the behavior of org-open-at-point.
>
> This snippet will add a function to that hook that will attempt to follow a link, when you click on a link in a src-block:
[Example code with function added to org-open-at-point-functions elided.]
Chuck,
Thanks for the code. You’re right—the proximate problem is in org-open-at-point.
Unfortunately, org-open-at-point calls org-babel-open-src-block-result first thing,
wrapped by unless, before it gets to running the hook.
Plausible changes would be to treat this as a mouse click issue and change org-open-at-mouse,
or to change the precedence in org-open-at-point, which Eric suggested is a way to look
at the problem.
For the moment, I’m going to use a personal version of org-open-at-mouse, but I still
think that running the code in a block when a URL is clicked is an unusual but
potentially big problem for someone.
Thanks,
Win
next prev parent reply other threads:[~2019-01-16 23:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-05 0:38 open link in source code block Win Treese
2019-01-05 10:25 ` Eric S Fraga
2019-01-05 15:41 ` Win Treese
2019-01-12 0:12 ` Berry, Charles
2019-01-16 23:43 ` Win Treese [this message]
2019-01-17 18:38 ` Berry, Charles
2019-01-18 2:05 ` Win Treese
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=2C9824E1-C291-475C-820A-B0F83A5E6619@acm.org \
--to=treese@acm.org \
--cc=Emacs-orgmode@gnu.org \
--cc=ccberry@ucsd.edu \
/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.