[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [ISSUE] links navigation not consistent behavior
From: |
Nick Dokos |
Subject: |
Re: [O] [ISSUE] links navigation not consistent behavior |
Date: |
Wed, 03 Apr 2019 12:28:28 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Nicolas Goaziou <address@hidden> writes:
> Hello,
>
> stardiviner <address@hidden> writes:
>
>> For example, I have following Org content:
>>
>> #+begin_src org ,*** TODO Figwheel [0/1]
>>
>> - [ ] https://www.youtube.com/watch?v=yUTxm29fjT4 :: I built a
>> Figwheel-inspired, hot code reloading experience for Clojure,
>> with an eye towards #datascience hacking.
>>
>> ,*** TODO Docker ClojureScript [0/3]
>>
>> - [ ] https://www.youtube.com/watch?v=yUTxm29fjT4 #+end_src
>>
>> When my point at beginning of buffer, then press {{{kbd(C-c C-x
>> C-n)}}} , it does not jump to first link, it jump to second link
>> instead. But when I jump backwards with {{{kbd(C-c C-x C-p)}}}
>> works fine.
>
> I rewrote this functions some weeks ago. Please try again on master.
>
I can reproduce the problem with very recent org. I did some debugging
and here are my notes:
,----
| I can reproduce this and traced it to this code:
|
| ,----
| | (catch :found
| | (while (funcall search-fun org-link-any-re nil t)
| | (pcase (org-element-lineage (org-element-context) '(link) t) ;;;
<<<<< HERE
| | (`nil nil) (link
| | (goto-char (org-element-property :begin link)) (when
| | (org-invisible-p) (org-show-context)) (throw :found t))))
| `----
|
| which is a rewrite of org-next-link in commit 4ff8947ea8.
|
| There is some asymmetry in how forward and backward searches behave:
|
| - in the forward case, the search ends up at the end of the first
| link where `org-element-lineage' returns nil, so the loop repeats;
| we then end up at the end of the second link where
| `org-element-lineage' returns the link, we go to the beginning of
| the link and return.
|
| - in the backward case, we end up at the beginning of each link in
| turn, in which case `org-element-lineage' returns a link, so both
| links are found.
|
| So it may be that `org-element-context' should return a structure with
| the link included when called at the end of the first link or it may
| be that the search should back up one char in the forward case, before
| calling org-context.
`----
This may be wrong but I did not have time to continue with it: I hope it's
useful.
--
Nick
"There are only two hard problems in computer science: cache
invalidation, naming things, and off-by-one errors." -Martin Fowler
- Re: [O] [ISSUE] links navigation not consistent behavior, Nicolas Goaziou, 2019/04/02
- Re: [O] [ISSUE] links navigation not consistent behavior,
Nick Dokos <=
- Re: [O] [ISSUE] links navigation not consistent behavior, Nicolas Goaziou, 2019/04/04
- Re: [O] [ISSUE] links navigation not consistent behavior, stardiviner, 2019/04/07
- Re: [O] [ISSUE] links navigation not consistent behavior, Nicolas Goaziou, 2019/04/08
- Re: [O] [ISSUE] links navigation not consistent behavior, stardiviner, 2019/04/09
- Re: [O] [ISSUE] links navigation not consistent behavior, Nicolas Goaziou, 2019/04/10
- Re: [O] [ISSUE] links navigation not consistent behavior, stardiviner, 2019/04/11