]> git.eshelyaron.com Git - emacs.git/commitdiff
* pcomplete.el (pcomplete-completions-at-point): New function,
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 15 May 2010 03:50:26 +0000 (23:50 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 15 May 2010 03:50:26 +0000 (23:50 -0400)
extracted from pcomplete-std-complete.
(pcomplete-std-complete): Use it.

lisp/ChangeLog
lisp/pcomplete.el

index e8a7245ab69764ef81cd05571a6b970ab8d39579..83e4012424bde340ea6e87a213e963bce45b7f18 100644 (file)
@@ -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):
index 65c05ae748710f9efa314245efb13a6365caaf96..cf199e69a33f7547b8ca879690799c8f9d8f411e 100644 (file)
@@ -444,12 +444,14 @@ in the same way as TABLE completes strings of the form (concat S2 S)."
 ;; 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 @@ Same as `pcomplete' but using the standard completion UI."
                                (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 @@ Same as `pcomplete' but using the standard completion UI."
                           (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.