emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Could org-mode use `completing-read-function' instead of `org-icompleting-read'?
Date: Thu, 16 Apr 2015 17:21:12 +0200	[thread overview]
Message-ID: <87egnkt7yv.fsf@gmx.us> (raw)
In-Reply-To: CAA01p3r4TB8mEwAZS+z4eb_0LWo1PRHSHQ+G8V_6Ht-75Wc77w@mail.gmail.com

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

Hi Oleh,

Oleh Krehel <ohwoeowho@gmail.com> writes:

>>> I was just trying to customize the completion back end for refiling
>>> (ido isn't
>>> great for that, even with the ido-vertical upgrade).  And it's not
>>> at all easy,
>>> since ido seems to be hard-wired into org-mode's completion.  Could we just
>>> change to use `completing-read-function' instead of `org-icompleting-read'?
>>
>> I think it's nicer to use existing features/variables, but comparability
>> is also an issue.
>
> Alright, I've made so that if `completing-read-function' is
> `completing-read-default', nothing changes.  But when it's set, it
> used. So now, e.g. `helm-mode' or `ivy-mode' will automatically work.

The change is no good IMO.  For the fix to work one needs to set
org-completion-use-ido.  If this is non-nil it would be weird if ido is
not used.

I don't know how to use helm of ivy.  But I think the attached patch is
better.  Would that work with helm and ivy?

—Rasmus

-- 
Send from my Emacs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-org.el-Small-refactor.patch --]
[-- Type: text/x-diff, Size: 2389 bytes --]

From 3836d34a10218cfe6a84d9479cbb587a2797a271 Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Thu, 16 Apr 2015 17:15:16 +0200
Subject: [PATCH] org.el: Small refactor

* org.el (org-icompleting-read): Support completing-read-default.
---
 lisp/org.el | 42 +++++++++++++++++++-----------------------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 659536d..fbd5ca7 100755
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -10502,29 +10502,25 @@ from."
 (defun org-icompleting-read (&rest args)
   "Completing-read using `ido-mode' or `iswitchb' speedups if available."
   (org-without-partial-completion
-   (if (and org-completion-use-ido
-            (fboundp 'ido-completing-read)
-            (boundp 'ido-mode) ido-mode
-            (listp (second args)))
-       (let ((ido-enter-matching-directory nil))
-         (apply (if (eq completing-read-function
-                        'completing-read-default)
-                    'ido-completing-read
-                  completing-read-function)
-                (concat (car args))
-                (if (consp (car (nth 1 args)))
-                    (mapcar 'car (nth 1 args))
-                  (nth 1 args))
-                (cddr args)))
-     (if (and org-completion-use-iswitchb
-              (boundp 'iswitchb-mode) iswitchb-mode
-              (listp (second args)))
-         (apply 'org-iswitchb-completing-read (concat (car args))
-                (if (consp (car (nth 1 args)))
-                    (mapcar 'car (nth 1 args))
-                  (nth 1 args))
-                (cddr args))
-       (apply 'completing-read args)))))
+   (let ((ido-enter-matching-directory nil))
+     (apply
+      (cond ((and org-completion-use-ido
+		  (fboundp 'ido-completing-read)
+		  (boundp 'ido-mode) ido-mode
+		  (listp (second args)))
+	     'ido-completing-read)
+	    ((and org-completion-use-iswitchb
+		  (boundp 'iswitchb-mode) iswitchb-mode
+		  (listp (second args)))
+	     'org-iswitchb-completing-read)
+	    (t (or (and (boundp 'completing-read-function)
+			completing-read-function)
+		   'completing-read)))
+      (concat (car args))
+      (if (consp (car (nth 1 args)))
+	  (mapcar 'car (nth 1 args))
+	(nth 1 args))
+      (cddr args)))))
 
 (defun org-extract-attributes (s)
   "Extract the attributes cookie from a string and set as text property."
-- 
2.3.5


  reply	other threads:[~2015-04-16 15:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-16 13:36 Could org-mode use `completing-read-function' instead of `org-icompleting-read'? Oleh Krehel
2015-04-16 14:10 ` Rasmus
2015-04-16 14:31   ` Oleh Krehel
2015-04-16 15:21     ` Rasmus [this message]
2015-04-16 15:30       ` Oleh Krehel
2015-04-16 15:35         ` Oleh Krehel
2015-04-16 17:45           ` Marcin Borkowski
2015-04-16 18:02             ` Oleh Krehel
2015-04-16 18:05             ` Rasmus
2015-04-16 22:25               ` Marcin Borkowski
2015-04-16 15:47         ` Rasmus

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=87egnkt7yv.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    /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).