unofficial mirror of emacs-orgmode@gnu.org
 help / color / mirror / Atom feed
* what do do when multiple functions store a link
@ 2021-01-02 13:49 John Kitchin
  2021-01-02 14:37 ` Daniele Nicolodi
  2021-01-02 22:13 ` [PATCH] ol: Avoid initial input when completing function for storing link Kyle Meyer
  0 siblings, 2 replies; 5+ messages in thread
From: John Kitchin @ 2021-01-02 13:49 UTC (permalink / raw)
  To: org-mode-email

[-- Attachment #1: Type: text/plain, Size: 1014 bytes --]

Recently I have had an issue where multiple functions may store a link,
e.g. to a bibtex entry.

In this case, org-mode seems to prompt me to ask which function to store
the link with, with an initial input of the first function, which masks all
the options that are available. This happens inside org-store-link in ol.el
at line 1495 for me. in

(apply #'org-link-store-props
(cdr (assoc-string
      (completing-read
"Which function for creating the link? "
(mapcar #'car results-alist)
nil t (symbol-name name))
      results-alist)))

because of the (symbol-name name).

Is there an easy way to avoid this, or to modify the order of the functions
used? I want to see all the options for storing, or better, to just store
them all and let me choose later when I use org-insert-link.

John

-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

[-- Attachment #2: Type: text/html, Size: 2682 bytes --]

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

* Re: what do do when multiple functions store a link
  2021-01-02 13:49 what do do when multiple functions store a link John Kitchin
@ 2021-01-02 14:37 ` Daniele Nicolodi
  2021-01-02 14:55   ` John Kitchin
  2021-01-02 22:13 ` [PATCH] ol: Avoid initial input when completing function for storing link Kyle Meyer
  1 sibling, 1 reply; 5+ messages in thread
From: Daniele Nicolodi @ 2021-01-02 14:37 UTC (permalink / raw)
  To: John Kitchin, org-mode-email

On 02/01/2021 14:49, John Kitchin wrote:
> Recently I have had an issue where multiple functions may store a link,
> e.g. to a bibtex entry. 
>  
> In this case, org-mode seems to prompt me to ask which function to store
> the link with, with an initial input of the first function, which masks
> all the options that are available. This happens
> inside |org-store-link| in ol.el at line 1495 for me. in
> 
> (apply #'org-link-store-props
> (cdr (assoc-string
>       (completing-read
> "Which function for creating the link? "
> (mapcar #'car results-alist)
> nil t (symbol-name name))
>       results-alist))) 
> 
> because of the (symbol-name name).
>  
> Is there an easy way to avoid this, or to modify the order of the
> functions used? I want to see all the options for storing, or better, to
> just store them all and let me choose later when I use org-insert-link.

I have the exact same problem. I think it comes from having org-bibtex
and org-ref loaded at the same time. I haven't investigated a possible
solution.

Cheers,
Dan


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

* Re: what do do when multiple functions store a link
  2021-01-02 14:37 ` Daniele Nicolodi
@ 2021-01-02 14:55   ` John Kitchin
  0 siblings, 0 replies; 5+ messages in thread
From: John Kitchin @ 2021-01-02 14:55 UTC (permalink / raw)
  To: Daniele Nicolodi; +Cc: org-mode-email

[-- Attachment #1: Type: text/plain, Size: 1822 bytes --]

Here is a very grungy solution:

(defun scimax-store-link-advice (orig-fun &rest args)
  (cl-letf (((symbol-function 'symbol-name)
	     (lambda (_)
	       "")))
    (apply orig-fun args)))

(advice-add 'org-store-link :around 'scimax-store-link-advice)

It works by temporarily redefining symbol-name to return an empty string.
It's only redeeming qualities are 1) it works, 2) you don't have to modify
the org src code!

John

-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



On Sat, Jan 2, 2021 at 9:37 AM Daniele Nicolodi <daniele@grinta.net> wrote:

> On 02/01/2021 14:49, John Kitchin wrote:
> > Recently I have had an issue where multiple functions may store a link,
> > e.g. to a bibtex entry.
> >
> > In this case, org-mode seems to prompt me to ask which function to store
> > the link with, with an initial input of the first function, which masks
> > all the options that are available. This happens
> > inside |org-store-link| in ol.el at line 1495 for me. in
> >
> > (apply #'org-link-store-props
> > (cdr (assoc-string
> >       (completing-read
> > "Which function for creating the link? "
> > (mapcar #'car results-alist)
> > nil t (symbol-name name))
> >       results-alist)))
> >
> > because of the (symbol-name name).
> >
> > Is there an easy way to avoid this, or to modify the order of the
> > functions used? I want to see all the options for storing, or better, to
> > just store them all and let me choose later when I use org-insert-link.
>
> I have the exact same problem. I think it comes from having org-bibtex
> and org-ref loaded at the same time. I haven't investigated a possible
> solution.
>
> Cheers,
> Dan
>

[-- Attachment #2: Type: text/html, Size: 2924 bytes --]

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

* [PATCH] ol: Avoid initial input when completing function for storing link
  2021-01-02 13:49 what do do when multiple functions store a link John Kitchin
  2021-01-02 14:37 ` Daniele Nicolodi
@ 2021-01-02 22:13 ` Kyle Meyer
  2021-01-05  5:16   ` Kyle Meyer
  1 sibling, 1 reply; 5+ messages in thread
From: Kyle Meyer @ 2021-01-02 22:13 UTC (permalink / raw)
  To: John Kitchin; +Cc: org-mode-email

John Kitchin writes:

> Recently I have had an issue where multiple functions may store a link,
> e.g. to a bibtex entry.
>
> In this case, org-mode seems to prompt me to ask which function to store
> the link with, with an initial input of the first function, which masks all
> the options that are available. This happens inside org-store-link in ol.el
> at line 1495 for me. in
>
> (apply #'org-link-store-props
> (cdr (assoc-string
>       (completing-read
> "Which function for creating the link? "
> (mapcar #'car results-alist)
> nil t (symbol-name name))
>       results-alist)))
>
> because of the (symbol-name name).
>
> Is there an easy way to avoid this, or to modify the order of the functions
> used? I want to see all the options for storing, or better, to just store
> them all and let me choose later when I use org-insert-link.

The "or better" sounds reasonable.  Perhaps someone will attempt that,
but in the meantime I think just avoiding the discouraged/mostly
deprecated INITIAL-INPUT argument would be a good improvement.

-- >8 --
Subject: [PATCH] ol: Avoid initial input when completing function for storing
 link

* lisp/ol.el (org-store-link): Use completing-read's DEF argument
rather than INITIAL-INPUT, which is discouraged (see Elisp manual) and
may hide the other choices depending on the completion framework.

Reported-by: John Kitchin <jkitchin@andrew.cmu.edu>
Ref: https://orgmode.org/list/CAJ51ETqO9A8mE0W3pgU2cFzaZsESdYXAV0X-8veY+_V9AwPHdQ@mail.gmail.com
---
 lisp/ol.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/ol.el b/lisp/ol.el
index 5ba813142..cf105786f 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -1496,9 +1496,9 @@ (defun org-store-link (arg &optional interactive?)
 		  (apply #'org-link-store-props
 			 (cdr (assoc-string
 			       (completing-read
-				"Which function for creating the link? "
-				(mapcar #'car results-alist)
-				nil t (symbol-name name))
+                                (format "Store link with (default %s): " name)
+                                (mapcar #'car results-alist)
+                                nil t nil nil (symbol-name name))
 			       results-alist)))
 		  t))))
 	(setq link (plist-get org-store-link-plist :link))

base-commit: 291993888d7b6776d42a86facd26c8bc0f72e475
-- 
2.29.2



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

* Re: [PATCH] ol: Avoid initial input when completing function for storing link
  2021-01-02 22:13 ` [PATCH] ol: Avoid initial input when completing function for storing link Kyle Meyer
@ 2021-01-05  5:16   ` Kyle Meyer
  0 siblings, 0 replies; 5+ messages in thread
From: Kyle Meyer @ 2021-01-05  5:16 UTC (permalink / raw)
  To: John Kitchin; +Cc: org-mode-email

Kyle Meyer writes:

> John Kitchin writes:
>
>> Is there an easy way to avoid this, or to modify the order of the functions
>> used? I want to see all the options for storing, or better, to just store
>> them all and let me choose later when I use org-insert-link.
>
> The "or better" sounds reasonable.  Perhaps someone will attempt that,
> but in the meantime I think just avoiding the discouraged/mostly
> deprecated INITIAL-INPUT argument would be a good improvement.
>
> -- >8 --
> Subject: [PATCH] ol: Avoid initial input when completing function for storing
>  link

Pushed (00b4de329).


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

end of thread, other threads:[~2021-01-05  5:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-02 13:49 what do do when multiple functions store a link John Kitchin
2021-01-02 14:37 ` Daniele Nicolodi
2021-01-02 14:55   ` John Kitchin
2021-01-02 22:13 ` [PATCH] ol: Avoid initial input when completing function for storing link Kyle Meyer
2021-01-05  5:16   ` Kyle Meyer

unofficial mirror of emacs-orgmode@gnu.org

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/orgmode/0 orgmode/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 orgmode orgmode/ https://yhetil.org/orgmode \
		emacs-orgmode@gnu.org
	public-inbox-index orgmode

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.emacs.orgmode
	nntp://news.gmane.io/gmane.emacs.orgmode


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git