]> git.eshelyaron.com Git - kubed.git/commitdiff
; Add 'kubed-list-copy-as-kill' to context menus
authorEshel Yaron <me@eshelyaron.com>
Fri, 2 Aug 2024 17:35:55 +0000 (19:35 +0200)
committerEshel Yaron <me@eshelyaron.com>
Fri, 2 Aug 2024 17:35:55 +0000 (19:35 +0200)
* kubed.el (kubed-list-copy-as-kill): Fix typo.
(kubed-list-context-menu): New function.
(kubed-list-mode): Add it to 'context-menu-functions'.
* kubed.texi (Browsing Resources): Mention
'kubed-list-copy-as-kill'.

kubed.el
kubed.texi

index c2d4586169da1fd04c41ea0d3165370e02df90b1..110475dee7b6fab2544002f4401de845c3870822 100644 (file)
--- a/kubed.el
+++ b/kubed.el
@@ -369,7 +369,7 @@ to 1."
     (goto-char next)))
 
 (defun kubed-list-copy-as-kill (click)
-  "Copy name of Kubernetes resource at CLICK to into the kill ring."
+  "Copy name of Kubernetes resource at CLICK into the kill ring."
   (interactive (list last-nonmenu-event) kubed-list-mode)
   (if-let ((ent (tabulated-list-get-entry (mouse-set-point click)))
            (new (aref ent 0)))
@@ -378,6 +378,13 @@ to 1."
         (message "Copied resource name `%s'" new))
     (user-error "No Kubernetes resource at point")))
 
+(defun kubed-list-context-menu (menu click)
+  "Extend MENU with common actions on Kubernetes resource at CLICK."
+  (when (tabulated-list-get-entry (posn-point (event-start click)))
+    (define-key menu [kubed-list-copy-as-kill]
+                '(menu-item "Copy name" kubed-list-copy-as-kill)))
+  menu)
+
 (defvar-keymap kubed-list-mode-map
   :doc "Common keymap for Kubernetes resource list buffers."
   "/" #'kubed-list-set-filter
@@ -413,11 +420,13 @@ mode as their parent."
                   (save-excursion
                     (goto-char (point-min))
                     (while (not (eobp))
-                      (when-let ((mark (alist-get (tabulated-list-get-id) marks nil nil #'equal)))
+                      (when-let ((mark (alist-get (tabulated-list-get-id)
+                                                  marks nil nil #'equal)))
                         (tabulated-list-put-tag mark))
                       (forward-line))))))
             nil t)
-  (setq-local truncate-string-ellipsis (propertize ">" 'face 'shadow)))
+  (setq-local truncate-string-ellipsis (propertize ">" 'face 'shadow))
+  (add-hook 'context-menu-functions #'kubed-list-context-menu nil t))
 
 ;;;###autoload
 (defmacro kubed-define-resource (resource &optional properties &rest commands)
index c11768a01450d96684e2432cac7d8fd83fb994f7..9b1e33c45f350698e12fdfa9cfe09a793334c064 100644 (file)
@@ -231,6 +231,11 @@ Unmark from resource at point (@code{kubed-list-unmark}).
 Toggle @code{kubed-all-namespaces-mode}.  When enabled, resource lists
 for namespaced resource types show resources from all namespaces, not
 just the current namespace.
+@kindex w
+@findex kubed-list-copy-as-kill
+@item w
+Copy name of resource at point into the kill ring
+(@code{kubed-list-copy-as-kill}).
 @kindex n
 @findex next-line
 @item n