emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] org-olpath-completing-read is not friendly with partial-co


From: Carsten Dominik
Subject: Re: [Orgmode] org-olpath-completing-read is not friendly with partial-completion-mode
Date: Fri, 16 Oct 2009 18:27:15 +0200

Hi Levin,

I am already turning off partial completion mode for a number of
relevant completion prompts, even have defined a macro org-without- partial-completion for this purpose.

In what particular circumstance are you hit by this problem?

- Carsten

On Oct 16, 2009, at 8:52 AM, Levin Du wrote:

Try this:

(partial-completion-mode t)
(funcall 'org-olpath-completing-read "? "
        '("todo1.org/tasks/"
         "todo1.org/tasks/normal/"
         "todo1.org/tasks/urgent/"
         "note.org/")
        nil t nil nil)

todo<tab><tab>

It stays on todo1.org/ (Sole completion)



my raw patch:
diff --git a/vendor/org/org.el b/vendor/org/org.el
index d3d886f..f3a02cf 100644
--- a/vendor/org/org.el
+++ b/vendor/org/org.el
@@ -7780,23 +7780,29 @@ from."

(defun org-icompleting-read (&rest args)
"Completing-read using `ido-mode' or `iswitchb' speedups if available"
-  (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 'ido-completing-read (concat (car args))
-              (if (consp (car (nth 1 args)))
-                  (mapcar (lambda (x) (car x)) (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))
-              (mapcar (lambda (x) (car x)) (nth 1 args))
-              (cddr args))
-      (apply 'completing-read args))))
+  (let ((saved-pc-mode partial-completion-mode))
+    (when saved-pc-mode
+      (partial-completion-mode 0))
+    (unwind-protect
+        (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 'ido-completing-read (concat (car args))
+                     (if (consp (car (nth 1 args)))
+                         (mapcar (lambda (x) (car x)) (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))
+                     (mapcar (lambda (x) (car x)) (nth 1 args))
+                     (cddr args))
+            (apply 'completing-read args)))
+      (when saved-pc-mode
+        (partial-completion-mode 1)))))

(defun org-extract-attributes (s)
"Extract the attributes cookie from a string and set as text property."
@@ -8890,7 +8896,6 @@ See also `org-refile-use-outline-path' and
`org-completion-use-ido'"
  (unless org-refile-target-table
    (error "No refile targets"))
  (let* ((cbuf (current-buffer))
-        (partial-completion-mode nil)
         (cfn (buffer-file-name (buffer-base-buffer cbuf)))
         (cfunc (if (and org-refile-use-outline-path
                         org-outline-path-complete-in-steps)


Hope it helps.

Regards,
Levin


_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

- Carsten







reply via email to

[Prev in Thread] Current Thread [Next in Thread]