]> git.eshelyaron.com Git - emacs.git/commitdiff
Make the button completion predicate be more useful
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 15 Feb 2021 03:42:32 +0000 (04:42 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 15 Feb 2021 03:42:32 +0000 (04:42 +0100)
* lisp/simple.el (completion-button-p): Rework from
`completion-at-point-p'.

* lisp/net/shr.el (shr-show-alt-text): It should be possible to
complete to commands that aren't bound to a key.

lisp/net/shr.el
lisp/simple.el

index 2596a348384fb89621ddd88f66227c92ed138686..739b56b88c6fb34bf439d615ed25a277895f1130 100644 (file)
@@ -434,7 +434,7 @@ Value is a pair of positions (START . END) if there is a non-nil
 
 (defun shr-show-alt-text ()
   "Show the ALT text of the image under point."
-  (declare (completion 'completion-at-point-p))
+  (declare (completion (lambda (_ b) (completion-button-p 'shr b))))
   (interactive)
   (let ((text (get-text-property (point) 'shr-alt)))
     (if (not text)
index ed0e753ee06697f816e51f69e5e8e7b12d6217b2..8d27cf8d6259e7065e5ea78c8e6d7e0ad7b3d17d 100644 (file)
@@ -2005,11 +2005,11 @@ or (if one of MODES is a minor mode), if it is switched on in BUFFER."
                         (buffer-local-value 'minor-modes buffer)
                         #'eq)))
 
-(defun completion-at-point-p (symbol buffer)
-  "Return non-nil if SYMBOL is in a local map at point in BUFFER."
+(defun completion-button-p (category buffer)
+  "Return non-nil if there's a button of CATEGORY at point in BUFFER."
   (with-current-buffer buffer
-    (when-let ((map (get-text-property (point) 'keymap)))
-      (where-is-internal symbol map))))
+    (and (get-text-property (point) 'button)
+         (eq (get-text-property (point) 'category) category))))
 
 (defun read-extended-command--affixation (command-names)
   (with-selected-window (or (minibuffer-selected-window) (selected-window))