]> git.eshelyaron.com Git - emacs.git/commitdiff
Convert makefile-mode menu to easy-menu-define
authorStefan Kangas <stefan@marxist.se>
Sat, 20 Feb 2021 16:43:03 +0000 (17:43 +0100)
committerStefan Kangas <stefan@marxist.se>
Sat, 20 Feb 2021 16:43:03 +0000 (17:43 +0100)
* lisp/progmodes/make-mode.el (makefile-mode-map): Move menu
definition from here...
(makefile-mode-menu): ...to here, and rewrite using easy-menu-define.

lisp/progmodes/make-mode.el

index 3d1e7d634a2078ee5f32203257f62cb74c35f06f..d444ce299953fe4310a21e08510faf50f5c47f2d 100644 (file)
@@ -573,8 +573,7 @@ The function must satisfy this calling convention:
   "Abbrev table in use in Makefile buffers.")
 
 (defvar makefile-mode-map
-  (let ((map (make-sparse-keymap))
-       (opt-map (make-sparse-keymap)))
+  (let ((map (make-sparse-keymap)))
     ;; set up the keymap
     (define-key map "\C-c:" 'makefile-insert-target-ref)
     (if makefile-electric-keys
@@ -599,72 +598,56 @@ The function must satisfy this calling convention:
     (define-key map "\M-p"     'makefile-previous-dependency)
     (define-key map "\M-n"     'makefile-next-dependency)
     (define-key map "\e\t"     'completion-at-point)
-
-    ;; Make menus.
-    (define-key map [menu-bar makefile-mode]
-      (cons "Makefile" (make-sparse-keymap "Makefile")))
-
-    (define-key map [menu-bar makefile-mode makefile-type]
-      (cons "Switch Makefile Type" opt-map))
-    (define-key opt-map [makefile-makepp-mode]
-      '(menu-item "Makepp" makefile-makepp-mode
-                 :help "An adapted `makefile-mode' that knows about makepp"
-                 :button (:radio . (eq major-mode 'makefile-makepp-mode))))
-    (define-key opt-map [makefile-imake-mode]
-      '(menu-item "Imake" makefile-imake-mode
-                 :help "An adapted `makefile-mode' that knows about imake"
-                 :button (:radio . (eq major-mode 'makefile-imake-mode))))
-    (define-key opt-map [makefile-mode]
-      '(menu-item "Classic" makefile-mode
-                 :help "`makefile-mode' with no special functionality"
-                 :button (:radio . (eq major-mode 'makefile-mode))))
-    (define-key opt-map [makefile-bsdmake-mode]
-      '(menu-item "BSD" makefile-bsdmake-mode
-                 :help "An adapted `makefile-mode' that knows about BSD make"
-                 :button (:radio . (eq major-mode 'makefile-bsdmake-mode))))
-    (define-key opt-map [makefile-automake-mode]
-      '(menu-item "Automake" makefile-automake-mode
-                 :help "An adapted `makefile-mode' that knows about automake"
-                 :button (:radio . (eq major-mode 'makefile-automake-mode))))
-    (define-key opt-map [makefile-gmake-mode]
-      '(menu-item "GNU make" makefile-gmake-mode
-                 :help "An adapted `makefile-mode' that knows about GNU make"
-                 :button (:radio . (eq major-mode 'makefile-gmake-mode))))
-    (define-key map [menu-bar makefile-mode browse]
-      '(menu-item "Pop up Makefile Browser" makefile-switch-to-browser
-                 ;; XXX: this needs a better string, the function is not documented...
-                 :help "Pop up Makefile Browser"))
-    (define-key map [menu-bar makefile-mode overview]
-      '(menu-item "Up To Date Overview" makefile-create-up-to-date-overview
-                 :help "Create a buffer containing an overview of the state of all known targets"))
-    ;; Target related
-    (define-key map [menu-bar makefile-mode separator1]  '("----"))
-    (define-key map [menu-bar makefile-mode pickup-file]
-      '(menu-item "Pick File Name as Target" makefile-pickup-filenames-as-targets
-                 :help "Scan the current directory for filenames to use as targets"))
-    (define-key map [menu-bar makefile-mode function]
-      '(menu-item "Insert GNU make function" makefile-insert-gmake-function
-                 :help "Insert a GNU make function call"))
-    (define-key map [menu-bar makefile-mode pickup]
-      '(menu-item "Find Targets and Macros" makefile-pickup-everything
-                 :help "Notice names of all macros and targets in Makefile"))
-    (define-key map [menu-bar makefile-mode complete]
-      '(menu-item "Complete Target or Macro" completion-at-point
-                 :help "Perform completion on Makefile construct preceding point"))
-    (define-key map [menu-bar makefile-mode backslash]
-      '(menu-item "Backslash Region" makefile-backslash-region
-                 :help "Insert, align, or delete end-of-line backslashes on the lines in the region"))
-    ;; Motion
-    (define-key map [menu-bar makefile-mode separator]  '("----"))
-    (define-key map [menu-bar makefile-mode prev]
-      '(menu-item "Move to Previous Dependency" makefile-previous-dependency
-                 :help "Move point to the beginning of the previous dependency line"))
-    (define-key map [menu-bar makefile-mode next]
-      '(menu-item "Move to Next Dependency" makefile-next-dependency
-                 :help "Move point to the beginning of the next dependency line"))
     map)
   "The keymap that is used in Makefile mode.")
 
+(easy-menu-define makefile-mode-menu makefile-mode-map
+  "Menu for Makefile mode."
+  '("Makefile"
+    ;; Motion
+    ["Move to Next Dependency" makefile-next-dependency
+     :help "Move point to the beginning of the next dependency line"]
+    ["Move to Previous Dependency" makefile-previous-dependency
+     :help "Move point to the beginning of the previous dependency line"]
+    "----"
+    ;; Target related
+    ["Backslash Region" makefile-backslash-region
+     :help "Insert, align, or delete end-of-line backslashes on the lines in the region"]
+    ["Complete Target or Macro" completion-at-point
+     :help "Perform completion on Makefile construct preceding point"]
+    ["Find Targets and Macros" makefile-pickup-everything
+     :help "Notice names of all macros and targets in Makefile"]
+    ["Insert GNU make function" makefile-insert-gmake-function
+     :help "Insert a GNU make function call"]
+    ["Pick File Name as Target" makefile-pickup-filenames-as-targets
+     :help "Scan the current directory for filenames to use as targets"]
+    "----"
+    ;; Other.
+    ["Up To Date Overview" makefile-create-up-to-date-overview
+     :help "Create a buffer containing an overview of the state of all known targets"]
+    ["Pop up Makefile Browser" makefile-switch-to-browser
+     ;; XXX: this needs a better string, the function is not documented...
+     :help "Pop up Makefile Browser"]
+    ("Switch Makefile Type"
+     ["GNU make" makefile-gmake-mode
+      :help "An adapted `makefile-mode' that knows about GNU make"
+      :button (:radio . (eq major-mode 'makefile-gmake-mode))]
+     ["Automake" makefile-automake-mode
+      :help "An adapted `makefile-mode' that knows about automake"
+      :button (:radio . (eq major-mode 'makefile-automake-mode))]
+     ["BSD" makefile-bsdmake-mode
+      :help "An adapted `makefile-mode' that knows about BSD make"
+      :button (:radio . (eq major-mode 'makefile-bsdmake-mode))]
+     ["Classic" makefile-mode
+      :help "`makefile-mode' with no special functionality"
+      :button (:radio . (eq major-mode 'makefile-mode))]
+     ["Imake" makefile-imake-mode
+      :help "An adapted `makefile-mode' that knows about imake"
+      :button (:radio . (eq major-mode 'makefile-imake-mode))]
+     ["Makepp" makefile-makepp-mode
+      :help "An adapted `makefile-mode' that knows about makepp"
+      :button (:radio . (eq major-mode 'makefile-makepp-mode))])))
+
 
 (defvar makefile-browser-map
   (let ((map (make-sparse-keymap)))