branch: externals/dape
commit 1339f64a99c92a2d3916d545f8852b76a2f4328c
Author: Daniel Pettersson <dan...@dpettersson.net>
Commit: Daniel Pettersson <dan...@dpettersson.net>

    Fix binding separation for info buffer output in repl
---
 dape.el | 43 +++++++++++++++++++++++++++++--------------
 1 file changed, 29 insertions(+), 14 deletions(-)

diff --git a/dape.el b/dape.el
index bbeb31dcd2..41c963db78 100644
--- a/dape.el
+++ b/dape.el
@@ -3525,7 +3525,7 @@ Each buffers store its own debounce context."
           (cl-call-next-method))))))
 
 (define-derived-mode dape-info-parent-mode special-mode ""
-  "Generic mode to derive all other Dape gud buffer modes from."
+  "Generic mode to derive all other info buffer modes from."
   :interactive nil
   (setq-local buffer-read-only t
               truncate-lines t
@@ -3743,11 +3743,14 @@ buffers get displayed and how they are grouped."
                           (_ (user-error "Unable to edit breakpoint on line \
 without log or expression breakpoint"))))))
 
-(dape--buffer-map dape-info-breakpoints-mode-map dape-info-breakpoint-dwim
+(dape--buffer-map dape-info-breakpoints-mode-line-map dape-info-breakpoint-dwim
   "D" #'dape-info-breakpoint-disable
   "d" #'dape-info-breakpoint-delete
   "e" #'dape-info-breakpoint-log-edit)
 
+(defvar dape-info-breakpoints-mode-map
+  (copy-keymap dape-info-breakpoints-mode-line-map))
+
 (define-derived-mode dape-info-breakpoints-mode dape-info-parent-mode 
"Breakpoints"
   "Major mode for Dape info breakpoints."
   :interactive nil)
@@ -3849,10 +3852,13 @@ without log or expression breakpoint"))))))
             (" \\(started\\)"  (1 font-lock-string-face))))
   "Keywords for `dape-info-threads-mode'.")
 
-(dape--buffer-map dape-info-threads-mode-map dape-info-select-thread
+(dape--buffer-map dape-info-threads-mode-line-map dape-info-select-thread
   ;; TODO Add bindings for individual threads.
   )
 
+(defvar dape-info-threads-mode-map
+  (copy-keymap dape-info-threads-mode-line-map))
+
 (defun dape--info-threads-stack-info (conn cb)
   "Populate stack frame info for CONNs threads.
 See `dape-request' for expected CB signature."
@@ -3983,11 +3989,13 @@ See `dape-request' for expected CB signature."
       (dape-disassemble address)
     (user-error "No address for frame")))
 
-(dape--buffer-map dape-info-stack-mode-map dape-info-stack-select
+(dape--buffer-map dape-info-stack-mode-line-map dape-info-stack-select
   "m" #'dape-info-stack-memory
   "M" #'dape-info-stack-disassemble
   "D" #'dape-info-stack-disassemble)
 
+(defvar dape-info-stack-mode-map (copy-keymap dape-info-stack-mode-line-map))
+
 (define-derived-mode dape-info-stack-mode dape-info-parent-mode "Stack"
   "Major mode for Dape info stack."
   :interactive nil
@@ -4075,7 +4083,10 @@ current buffer with CONN config."
           (pop-to-buffer (marker-buffer marker))
         (user-error "Unable to open module")))))
 
-(dape--buffer-map dape-info-module-mode-map dape-info-modules-goto)
+(dape--buffer-map dape-info-modules-mode-line-map dape-info-modules-goto)
+
+(defvar dape-info-modules-mode-map
+  (copy-keymap dape-info-modules-mode-line-map))
 
 (define-derived-mode dape-info-modules-mode dape-info-parent-mode "Modules"
   "Major mode for Dape info modules."
@@ -4123,7 +4134,10 @@ current buffer with CONN config."
           (pop-to-buffer (marker-buffer marker))
         (user-error "Unable to get source")))))
 
-(dape--buffer-map dape-info-sources-mode-map dape-info-sources-goto)
+(dape--buffer-map dape-info-sources-mode-line-map dape-info-sources-goto)
+
+(defvar dape-info-sources-mode-map
+  (copy-keymap dape-info-sources-mode-line-map))
 
 (define-derived-mode dape-info-sources-mode dape-info-parent-mode "Sources"
   "Major mode for Dape info sources."
@@ -4227,18 +4241,17 @@ current buffer with CONN config."
            (dape--info-get-buffer-create 'dape-info-breakpoints-mode))
           (run-hooks 'dape-update-ui-hook))))))
 
-(defvar dape-info-variable-map
+(defvar dape-info-scope-mode-line-map
   (let ((map (make-sparse-keymap)))
     (define-key map "e" #'dape-info-scope-toggle)
     (define-key map "W" #'dape-info-scope-watch-dwim)
     (define-key map "=" #'dape-info-variable-edit)
     (define-key map "b" #'dape-info-scope-data-breakpoint)
     map)
-  "Keymap for buffers or regions displaying variables.")
+  "Keymap for buffers displaying variables.")
 
 (defvar dape-info-scope-mode-map
-  (make-composed-keymap dape-info-variable-map dape-info-parent-mode-map)
-  "Local keymap for dape scope buffers.")
+  (copy-keymap dape-info-scope-mode-line-map))
 
 (defun dape--info-locals-table-columns-list (alist)
   "Format and arrange the columns in locals display based on ALIST."
@@ -4361,8 +4374,10 @@ calls should continue.  If NO-HANDLES is non nil skip + 
- handles."
 
 ;;; Info watch buffer
 
+(defvaralias 'dape-info-watch-mode-line-map 'dape-info-scope-mode-line-map)
+
 (defvar dape-info-watch-mode-map
-  (let ((map (make-composed-keymap nil dape-info-scope-mode-map)))
+  (let ((map (make-composed-keymap nil dape-info-watch-mode-line-map)))
     (define-key map "\C-x\C-q" #'dape-info-watch-edit-mode)
     map)
   "Local keymap for dape watch buffer.")
@@ -4572,7 +4587,7 @@ The search is done backwards from POINT.  The line is 
marked with
     (dape--info-scope-add-variable table variable nil '(repl) 
#'dape--variable-expanded-p)
     (dape--repl-make-region-string (gdb-table-string table " ")
                                    (apply-partially #'dape--repl-variable 
variable)
-                                   dape-info-variable-map)))
+                                   dape-info-scope-mode-line-map)))
 
 (defun dape--repl-info-string (mode index)
   "Return info MODE buffer content as string.
@@ -4583,11 +4598,11 @@ See `dape--info-buffer-index' for information on INDEX."
     (let ((dape-ui-debounce-time 0)
           (dape--request-blocking t))
       (revert-buffer))
-    (font-lock-ensure)
+    (ignore-errors (font-lock-ensure))
     (dape--repl-make-region-string
      (buffer-substring (point-min) (point-max))
      (apply-partially #'dape--repl-info-string mode index)
-     (symbol-value (derived-mode-map-name mode)))))
+     (symbol-value (intern (concat (symbol-name mode) "-line-map"))))))
 
 (defun dape--repl-insert-info-buffer (mode &optional index)
   "Insert content of MODE info buffer into repl.

Reply via email to