From 615f039a00b47558b65aea688c45ddf3bb30d6ae Mon Sep 17 00:00:00 2001 From: Clemens Radermacher Date: Mon, 9 Dec 2019 19:59:17 +0100 Subject: [PATCH] Add a `eaf-mode-map*` and `eaf-describe-bindings` --- eaf.el | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/eaf.el b/eaf.el index 198658d..d4ef17c 100644 --- a/eaf.el +++ b/eaf.el @@ -93,10 +93,24 @@ "Eaf mode hook." :type 'hook) -(defvar eaf-mode-map +(defvar eaf-mode-map* (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-h m") 'eaf-describe-bindings) map) - "Keymap used by `eaf-mode'.") + "Keymap for default bindings available in all apps.") + +(defvar eaf-mode-map nil + "Keymap used by `eaf-mode'. + +Don't modify this map directly. To bind keys for all apps use +`eaf-mode-map*' and to bind keys for individual apps use +`eaf-bind-key'.") + +(defun eaf-describe-bindings () + "Like `describe-bindings' for eaf buffers." + (interactive) + (let ((eaf-mode-map (current-local-map))) + (call-interactively 'describe-mode))) (defvar-local eaf--buffer-id nil "Internal id used by eaf app.") @@ -420,7 +434,8 @@ Please ONLY use `eaf-bind-key' to edit EAF keybindings!" do (let ((dummy (intern (format "eaf-%s" fun)))) (eaf-dummy-function dummy fun key) (define-key map (kbd key) dummy)) - finally return map)))) + finally return (prog1 map + (set-keymap-parent map eaf-mode-map*)))))) (defun eaf-get-app-bindings (app-name) (symbol-value