emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/realgud 5b0ed08 58/72: Merge pull request #277 from 813


From: Stefan Monnier
Subject: [elpa] externals/realgud 5b0ed08 58/72: Merge pull request #277 from 813gan/fix_gh275
Date: Fri, 26 Mar 2021 22:49:13 -0400 (EDT)

branch: externals/realgud
commit 5b0ed08364b1f5e2df2f3f7d5a6e7a2fedb5189a
Merge: de31e77 d496bcd
Author: R. Bernstein <rocky@users.noreply.github.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #277 from 813gan/fix_gh275
    
    Fix #275. Add srcbuf-mode to allow cleaning up shortcuts at quit.
---
 realgud/common/buffer/source.el | 18 +++++++++++++-----
 realgud/common/core.el          |  1 +
 test/test-keymap-cleanup.el     | 34 ++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/realgud/common/buffer/source.el b/realgud/common/buffer/source.el
index 108593f..489ef1d 100644
--- a/realgud/common/buffer/source.el
+++ b/realgud/common/buffer/source.el
@@ -132,6 +132,17 @@ current buffer."
 ;; which might be active.
 (make-variable-buffer-local 'realgud-srcbuf-info)
 
+(defvar realgud:srcbuf-mode-map
+  (make-sparse-keymap) )
+
+(define-minor-mode realgud-srcbuf-mode
+  "Minor mode for source buffers for the `realgud' debugger."
+  :group 'realgud
+  :global nil
+  :init-value nil
+  :keymap realgud:srcbuf-mode-map
+)
+
 (defun realgud-srcbuf-init
   (src-buffer cmdproc-buffer)
   "Initialize SRC-BUFFER as a source-code buffer for a debugger.
@@ -153,11 +164,8 @@ debugger."
 in it with those from CMDPROC-BUFFER"
   (realgud-cmdbuf-add-srcbuf src-buffer cmdproc-buffer)
   (with-current-buffer-safe src-buffer
-    (realgud-populate-common-keys
-     ;; use-local-map returns nil so e have to call (current-local-map)
-     ;; again in this case.
-     (or (current-local-map) (use-local-map (make-sparse-keymap))
-        (current-local-map)))
+    (realgud-srcbuf-mode)
+    (realgud-populate-common-keys realgud:srcbuf-mode-map)
     (if (realgud-srcbuf-info? realgud-srcbuf-info)
        (realgud-srcbuf-info-cmdproc= cmdproc-buffer)
       (realgud-srcbuf-init src-buffer cmdproc-buffer))))
diff --git a/realgud/common/core.el b/realgud/common/core.el
index 916f8a0..af23eb7 100644
--- a/realgud/common/core.el
+++ b/realgud/common/core.el
@@ -147,6 +147,7 @@ return the first argument is always removed.
       (redisplay)
       )
     (loc-changes-clear-buffer)
+    (realgud-srcbuf-mode -1)
     ))
 
 (defun realgud:terminate (&optional buf)
diff --git a/test/test-keymap-cleanup.el b/test/test-keymap-cleanup.el
new file mode 100644
index 0000000..d5b8145
--- /dev/null
+++ b/test/test-keymap-cleanup.el
@@ -0,0 +1,34 @@
+;; Regression test for https://github.com/realgud/realgud/issues/275
+
+;; Press C-x C-e at the end of the next line to run this file test 
non-interactively
+;; (test-simple-run "emacs -batch -L %s -L %s -L %s -l %s" 
(file-name-directory (locate-library "load-relative.elc")) (file-name-directory 
(locate-library "test-simple.elc")) (file-name-directory (locate-library 
"loc-changes.elc")) buffer-file-name)
+
+(require 'test-simple)
+
+(test-simple-start)
+
+(note "realgud-keymap-cleanup")
+
+(setq temp-procbuf (generate-new-buffer "*procbuf-test*"))
+(setq temp-srcbuf (generate-new-buffer "*srcbuf-test*"))
+(with-current-buffer temp-srcbuf
+  (python-mode) )
+(setq debugger-name "pdb")
+(load-file "../realgud/debugger/pdb/pdb.el")
+
+(realgud-cmdbuf-init temp-procbuf debugger-name
+                    (gethash debugger-name realgud-pat-hash))
+(realgud-srcbuf-init-or-update temp-srcbuf temp-procbuf)
+
+(note "Realgud keys present in srcbuf")
+(with-current-buffer temp-srcbuf
+  (assert-t (equal 'realgud:cmd-step (key-binding (kbd "<f11>")))) )
+
+(realgud:terminate-srcbuf temp-srcbuf)
+
+(note "Realgud keys not present in srcbuf after quit")
+(with-current-buffer temp-srcbuf
+  (python-mode)
+  (assert-nil (equal 'realgud:cmd-step (key-binding (kbd "<f11>")))) )
+
+(end-tests)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]