From: Ihor Radchenko <yantar92@posteo.net>
To: Samuel Wales <samologist@gmail.com>
Cc: Max Nikulin <manikulin@gmail.com>, emacs-orgmode@gnu.org
Subject: Re: org-insert-link completion by description (Re: what is the purpose of "This link has already been stored"?)
Date: Wed, 05 Jul 2023 11:00:46 +0000 [thread overview]
Message-ID: <871qhmaaht.fsf@localhost> (raw)
In-Reply-To: <CAJcAo8ui=WrX7Ko1DXCwdASCntuqi5=1SuLWA6CgTZf3neQLqQ@mail.gmail.com>
Samuel Wales <samologist@gmail.com> writes:
>>> this buffer contains nothing useful and shortens the above buffer.
>>
>> This is fine. I assume that you can simply hide it away using
>> `display-buffer-alist'.
>
> i have struggled with this in a wider context and gotten nowhere for years.
(add-to-list
'display-buffer-alist
`("*Org Links*" display-buffer-no-window (allow-no-window . t)))
You may also find
https://www.masteringemacs.org/article/demystifying-emacs-window-manager
and
https://www.gnu.org/software/emacs/manual/html_node/elisp/The-Zen-of-Buffer-Display.html
useful.
>> Org shows link prefixes, stored links, and link description in the
>> completion. The relevant code in `org-insert-link' is:
>
> what is the purpose of the prefixes?
When inserting a link, you do not always need to insert a stored link.
Various link types can have completion function specific to a link type.
For example, I arranged my id: links to use org-ql for completion. That
way I can insert id: links searching across all the agenda files via
org-ql.
> where is the description in this case? was it a bare link? that is
> unusual for an id link.
>> (org-completing-read
>> "Link: "
>> (append
>> (mapcar (lambda (x) (concat x ":")) all-prefixes)
The above corresponds to link prefixes.
>> (mapcar #'car org-stored-links)
Each element of `org-stored-links' is (path description).
car in org-stored-links elements are bare links (link path).
>> ;; Allow description completion. Avoid "nil" option
>> ;; in the case of `completing-read-default' and
>> ;; an error in `ido-completing-read' when some links
>> ;; have no description.
>> (delq nil (mapcar 'cadr org-stored-links)))
cadr in org-stored-links elements are descriptions.
So, the completion should offer (1) all the link types; (2) all the link
paths; (3) all the link descriptions.
You can try to run this code manually to see.
You can also remove different parts in the (append ...) to experiment.
>> Completing descriptions feature has been added by Max 10 months ago - it
>> is a fairly recent addition:
>
> please note that it is of course not my intention to criticize anybody
> or anybody's code. merely saying what i need. max is trying to be
> helpful. iu am not even sure how we got on this topic as my original
> report was the already stored bug.
That's not a problem. We already changed the subject of this spin-off
thread. The original bug report is separate.
> in the context of mindless store/insert, which is what i do most
> frequently, if the most recently stored is set to the completion
> default, this topic is moot as presumably others agree this is
> desirable. in the context of choosing a different link from the
> default, the short url-like prefixes being there in front of specific
> links confuses me.
So, your suggestion is to move link descriptions and paths before the
link types in the completion list?
> then there is the more fancy question of grabbing random links from
> all over your org files in order to paste them all in one place which
> i will not cover here.
I hope that M-x org-insert-all-links caters this need.
>> This commit is a part of Org 9.6.
>> May it be that you are using older Org version?
>
> 9.6.7, most recent bugfix. comments apply to vanilla.
May you please elaborate what you mean by "comments apply to vanilla"?
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
prev parent reply other threads:[~2023-07-05 11:01 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-28 1:35 what is the purpose of "This link has already been stored"? Samuel Wales
2023-06-28 9:32 ` Ihor Radchenko
2023-06-28 16:19 ` Anthony Carrico
2023-06-28 16:48 ` Ihor Radchenko
2023-06-28 23:59 ` Samuel Wales
2023-06-29 0:04 ` Samuel Wales
2023-06-29 0:07 ` Samuel Wales
2023-06-29 10:28 ` Ihor Radchenko
2023-06-29 13:02 ` Anthony Carrico
2023-06-29 13:09 ` Ihor Radchenko
2023-06-30 3:00 ` Samuel Wales
2023-06-30 3:26 ` Samuel Wales
2023-07-05 10:19 ` [PATCH] " Ihor Radchenko
2023-07-06 0:28 ` Samuel Wales
2023-07-15 12:35 ` Ihor Radchenko
2023-07-21 4:13 ` Samuel Wales
2023-07-21 7:46 ` Ihor Radchenko
2023-08-06 18:47 ` Bastien
2023-08-06 20:53 ` Samuel Wales
2023-08-08 9:08 ` Ihor Radchenko
2023-08-08 9:04 ` Ihor Radchenko
2023-08-08 13:37 ` Bastien Guerry
2023-08-11 9:31 ` Ihor Radchenko
2023-08-13 9:34 ` Bastien Guerry
2023-08-13 10:32 ` Ihor Radchenko
2023-08-14 0:36 ` Samuel Wales
2023-08-14 10:19 ` Ihor Radchenko
2023-08-14 10:51 ` Ihor Radchenko
2023-08-14 16:29 ` Bastien Guerry
2023-08-15 10:55 ` Ihor Radchenko
2023-08-16 13:20 ` Bastien Guerry
2023-07-01 4:48 ` org-insert-link completion by description (Re: what is the purpose of "This link has already been stored"?) Max Nikulin
2023-07-01 5:15 ` Samuel Wales
2023-07-01 5:26 ` Samuel Wales
2023-07-01 6:12 ` Max Nikulin
2023-07-02 3:29 ` Max Nikulin
2023-07-02 5:02 ` Samuel Wales
2023-07-02 5:52 ` Max Nikulin
2023-07-02 6:03 ` Samuel Wales
2023-07-03 14:56 ` Max Nikulin
2023-07-03 23:28 ` Samuel Wales
2023-07-03 23:42 ` Samuel Wales
2023-07-03 23:48 ` Samuel Wales
2023-07-03 23:49 ` Samuel Wales
2023-07-03 23:50 ` Samuel Wales
2023-07-04 0:27 ` Samuel Wales
2023-07-04 0:28 ` Samuel Wales
2023-07-04 1:45 ` Max Nikulin
2023-07-04 2:29 ` Samuel Wales
2023-07-04 9:31 ` Ihor Radchenko
2023-07-05 0:10 ` Samuel Wales
2023-07-05 11:00 ` Ihor Radchenko [this message]
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
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871qhmaaht.fsf@localhost \
--to=yantar92@posteo.net \
--cc=emacs-orgmode@gnu.org \
--cc=manikulin@gmail.com \
--cc=samologist@gmail.com \
/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 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).