changeset 108587:17dd83b6f6d9

* pcomplete.el (pcomplete-completions-at-point): New function, extracted from pcomplete-std-complete. (pcomplete-std-complete): Use it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 14 May 2010 23:50:26 -0400
parents 36240284aaab
children 7c03bbe03019
files lisp/ChangeLog lisp/pcomplete.el
diffstat 2 files changed, 19 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri May 14 19:02:28 2010 -0700
+++ b/lisp/ChangeLog	Fri May 14 23:50:26 2010 -0400
@@ -1,3 +1,9 @@
+2010-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* pcomplete.el (pcomplete-completions-at-point): New function,
+	extracted from pcomplete-std-complete.
+	(pcomplete-std-complete): Use it.
+
 2010-05-15  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in (setwins, setwins_almost, setwins_for_subdirs):
--- a/lisp/pcomplete.el	Fri May 14 19:02:28 2010 -0700
+++ b/lisp/pcomplete.el	Fri May 14 23:50:26 2010 -0400
@@ -444,12 +444,14 @@
 ;; I don't think such commands are usable before first setting up buffer-local
 ;; variables to parse args, so there's no point autoloading it.
 ;; ;;;###autoload
-(defun pcomplete-std-complete ()
+(defun pcomplete-completions-at-point ()
   "Provide standard completion using pcomplete's completion tables.
 Same as `pcomplete' but using the standard completion UI."
-  (interactive)
   ;; FIXME: it only completes the text before point, whereas the
   ;; standard UI may also consider text after point.
+  ;; FIXME: the `pcomplete' UI may be used internally during
+  ;; pcomplete-completions and then throw to `pcompleted', thus
+  ;; imposing the pcomplete UI over the standard UI.
   (catch 'pcompleted
     (let* ((pcomplete-stub)
            pcomplete-seen pcomplete-norm-func
@@ -516,7 +518,7 @@
                                (directory-file-name f))
                       pcomplete-seen))))))
 
-      (completion-in-region
+      (list
        beg (point)
        ;; Add a space at the end of completion.  Use a terminator-regexp
        ;; that never matches since the terminator cannot appear
@@ -527,7 +529,14 @@
                           (cons pcomplete-termination-string
                                 "\\`a\\`")
                           table))
-       pred))))
+       :predicate pred))))
+
+ ;; I don't think such commands are usable before first setting up buffer-local
+ ;; variables to parse args, so there's no point autoloading it.
+ ;; ;;;###autoload
+(defun pcomplete-std-complete ()
+  (let ((completion-at-point-functions '(pcomplete-completions-at-point)))
+    (completion-at-point)))
 
 ;;; Pcomplete's native UI.