branch: externals/poke
commit f9f332c37dad705ae172e803ecb82cbf917cf767
Author: Jose E. Marchesi <[email protected]>
Commit: Jose E. Marchesi <[email protected]>

    poke.el: new command `w' in poke-maps-mode
    
    This command copies the name of the selected mapped entity in the
    kill-ring.  Useful to refer to it at the repl.
    
    2022-03-28  Jose E. Marchesi  <[email protected]>
    
            * emacs/poke.el (poke-maps-cmd-copy-name-as-kill): Define.
            (poke-maps-mode-map): Map command above to (kbd "w").
---
 poke.el | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/poke.el b/poke.el
index a7b492f7cc..34645fa532 100644
--- a/poke.el
+++ b/poke.el
@@ -1264,6 +1264,15 @@ at the top of the `poke-maps-stack' stack."
                   (get-buffer-window-list)))
         (select-window cur-window)))))
 
+(defun poke-maps-cmd-copy-name-as-kill ()
+  (interactive)
+  (let ((name (tabulated-list-get-id)))
+    (when name
+      (if (eq last-command 'kill-region)
+          (kill-append name nil)
+        (kill-new name))
+      (message "%s" name))))
+
 (defvar poke-maps-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map (kbd "RET") 'poke-maps-cmd-sub)
@@ -1273,6 +1282,7 @@ at the top of the `poke-maps-stack' stack."
     (define-key map (kbd "n") 'poke-maps-cmd-next)
     (define-key map (kbd "p") 'poke-maps-cmd-prev)
     (define-key map (kbd "e") 'poke-maps-cmd-edit)
+    (define-key map (kbd "w") 'poke-maps-cmd-copy-name-as-kill)
     map)
   "Local keymap for `poke-maps-mode' buffer.")
 

Reply via email to