From: Stefan Kangas Date: Sat, 20 Feb 2021 16:43:03 +0000 (+0100) Subject: Convert makefile-mode menu to easy-menu-define X-Git-Tag: emacs-28.0.90~3628 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cf95b53405772d2f5bd5da91e57184f3de28a7f4;p=emacs.git Convert makefile-mode menu to easy-menu-define * lisp/progmodes/make-mode.el (makefile-mode-map): Move menu definition from here... (makefile-mode-menu): ...to here, and rewrite using easy-menu-define. --- diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 3d1e7d634a2..d444ce29995 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el @@ -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)))