emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Keeping org-id entries updated with buffer position changes
@ 2023-09-26 23:54 Sebastian Wålinder
  2023-09-29 16:47 ` Sebastian Wålinder
  0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Wålinder @ 2023-09-26 23:54 UTC (permalink / raw)
  To: emacs-orgmode

Hello!

I often use org-id to create persistent links to headings like this:

* Foo
:PROPERTIES:
:ID:       BAR
:END:

[[BAR][Link]]

However, after inserting a line above foo, following the link BAR will take me to the wrong line, because the org-id database hasn't been updated with the headline's new position.

Running `org-id-update-id-locations` fixes this issue, but takes forever to run because it goes through all my org files.

How would I keep these links updated when I make frequent edits? Is there a function that updates the IDs in a single file only? If so, I could advice the open link function to run it first and update all the positions quickly before following the link.

Thoughts?

Thanks!


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Keeping org-id entries updated with buffer position changes
  2023-09-26 23:54 Keeping org-id entries updated with buffer position changes Sebastian Wålinder
@ 2023-09-29 16:47 ` Sebastian Wålinder
  2023-09-30  0:00   ` Sebastian Wålinder
  0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Wålinder @ 2023-09-29 16:47 UTC (permalink / raw)
  To: emacs-orgmode

I have been reading through the code, and it appears that org-id doesn't store the actual positions of ids within all files.

It's instead fetched every time the link is accessed. There must be something strange going on with the org cache causing this issue.

Sebastian Wålinder <s.walinder@gmail.com> writes:

> Hello!
>
> I often use org-id to create persistent links to headings like this:
>
> * Foo
> :PROPERTIES:
> :ID:       BAR
> :END:
>
> [[BAR][Link]]
>
> However, after inserting a line above foo, following the link BAR will take me to the wrong line, because the org-id database hasn't been updated with the headline's new position.
>
> Running `org-id-update-id-locations` fixes this issue, but takes forever to run because it goes through all my org files.
>
> How would I keep these links updated when I make frequent edits? Is there a function that updates the IDs in a single file only? If so, I could advice the open link function to run it first and update all the positions quickly before following the link.
>
> Thoughts?
>
> Thanks!


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Keeping org-id entries updated with buffer position changes
  2023-09-29 16:47 ` Sebastian Wålinder
@ 2023-09-30  0:00   ` Sebastian Wålinder
  0 siblings, 0 replies; 3+ messages in thread
From: Sebastian Wålinder @ 2023-09-30  0:00 UTC (permalink / raw)
  To: emacs-orgmode

I found the issue.

Apologies to anyone confused by this, it's not an issue with `org`, but rather with `org-roam`.

I assumed it wouldn't run any code when simply being loaded, but it turns out that `org-roam` was adding itself as a link follow parameter for ID links when loaded by Emacs.

Removing it solves my issue:

(org-link-set-parameters "id" :follow #'org-roam-id-open)

Thanks!

Sebastian Wålinder <s.walinder@gmail.com> writes:

> I have been reading through the code, and it appears that org-id doesn't store the actual positions of ids within all files.
>
> It's instead fetched every time the link is accessed. There must be something strange going on with the org cache causing this issue.
>
> Sebastian Wålinder <s.walinder@gmail.com> writes:
>
>> Hello!
>>
>> I often use org-id to create persistent links to headings like this:
>>
>> * Foo
>> :PROPERTIES:
>> :ID:       BAR
>> :END:
>>
>> [[BAR][Link]]
>>
>> However, after inserting a line above foo, following the link BAR will take me to the wrong line, because the org-id database hasn't been updated with the headline's new position.
>>
>> Running `org-id-update-id-locations` fixes this issue, but takes forever to run because it goes through all my org files.
>>
>> How would I keep these links updated when I make frequent edits? Is there a function that updates the IDs in a single file only? If so, I could advice the open link function to run it first and update all the positions quickly before following the link.
>>
>> Thoughts?
>>
>> Thanks!


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-30  0:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-26 23:54 Keeping org-id entries updated with buffer position changes Sebastian Wålinder
2023-09-29 16:47 ` Sebastian Wålinder
2023-09-30  0:00   ` Sebastian Wålinder

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).