[Top][All Lists]

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

Re: [O] open link in source code block

From: Win Treese
Subject: Re: [O] open link in source code block
Date: Wed, 16 Jan 2019 18:43:02 -0500

[Quoting trimmed for the most relevant context.]

> On Jan 11, 2019, at 7:12 PM, Berry, Charles <address@hidden> wrote:
>> On Jan 5, 2019, at 7:41 AM, Win Treese <address@hidden> wrote:
>>> On Jan 5, 2019, at 5:25 AM, Eric S Fraga <address@hidden> 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.]


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 
wrapped by unless, before it gets to running the hook.

Plausible changes would be to treat this as a mouse click issue and change 
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 
think that running the code in a block when a URL is clicked is an unusual but 
potentially big problem for someone.


reply via email to

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