Bind keys in dwarf-mode-map definition

It's bad Emacs style to define keys from a top-level form.  Instead, one
should define a mode map separately and binding keys in the definition.
This lets users completely override the map by defining it before
loading the mode.

2017-10-10  Tom Tromey  <tom@tromey.com>

	* dwarf-mode.el (dwarf-mode-map): New defvar.
This commit is contained in:
Tom Tromey 2017-10-06 13:18:31 -06:00
parent 65630365f7
commit 22b6379798
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2017-10-10 Tom Tromey <tom@tromey.com>
* dwarf-mode.el (dwarf-mode-map): New defvar.
2017-10-10 Tom Tromey <tromey@sourceware.org>
PR 22249

View File

@ -141,6 +141,13 @@ A prefix argument means expand all children."
(expand-file-name dwarf-file)))
(set-buffer-modified-p nil)))
(defvar dwarf-mode-map
(let ((map (make-sparse-keymap)))
(set-keymap-parent map special-mode-map)
(define-key map [(control ?m)] #'dwarf-insert-substructure)
map)
"Keymap for dwarf-mode buffers.")
(define-derived-mode dwarf-mode special-mode "DWARF"
"Major mode for browsing DWARF output.
@ -151,8 +158,6 @@ A prefix argument means expand all children."
(set (make-local-variable 'revert-buffer-function) #'dwarf-do-refresh)
(jit-lock-register #'dwarf-fontify-region))
(define-key dwarf-mode-map [(control ?m)] #'dwarf-insert-substructure)
;;;###autoload
(defun dwarf-browse (file)
"Invoke `objdump' and put output into a `dwarf-mode' buffer.