[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/realgud 332d136 61/72: Merge pull request #282 from 813
From: |
Stefan Monnier |
Subject: |
[elpa] externals/realgud 332d136 61/72: Merge pull request #282 from 813gan/list-all-locals |
Date: |
Fri, 26 Mar 2021 22:49:13 -0400 (EDT) |
branch: externals/realgud
commit 332d13673074bee252ae7819b0898ee7c7895d2e
Merge: 5b0ed08 bd1942e
Author: R. Bernstein <rocky@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Merge pull request #282 from 813gan/list-all-locals
Final changes for initial version of loclas
---
realgud/common/buffer/locals.el | 49 ++++++++++++++++++++++++++++++++---------
realgud/common/custom.el | 5 +++++
realgud/common/locals-mode.el | 6 +++--
3 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/realgud/common/buffer/locals.el b/realgud/common/buffer/locals.el
index 33ca741..79b8da3 100644
--- a/realgud/common/buffer/locals.el
+++ b/realgud/common/buffer/locals.el
@@ -98,16 +98,24 @@ LOCAL-VAR-NAME - variable to inspect"
(car (realgud-run-command-get-output 'realgud:cmd-info-type local-var-name))
(mapconcat 'identity (realgud-run-command-get-output
'realgud:cmd-info-value local-var-name) "\n") ))
-(defun realgud-locals-register-reload ()
- "Get list of local variables and load values selected by user."
+(defun realgud-locals-register-reload (&optional action)
+ "Get list of local variables and load values selected by user.
+
+If ACTION is set to 'showall unconditionally show all values.
+If ACTION is set to 'hideall hide all values."
(let* ((locals-names-list (realgud-run-command-get-output
'realgud:cmd-info-locals-name-list))
- (frame-id 'frame_id_placeholder)
+ (frame-id locals-names-list)
(locals-data-hash (realgud-get-info 'locals-data))
(frame-data-hash (gethash frame-id locals-data-hash))
(new-frame-data-hash (make-hash-table :test 'equal)))
+ ;; Iterate over list of variables and get values if user expanded values
in past
+ ;; or we are in this frame for first time, but
"realgud-immediately-show-all-locals" is t
+ ;; or function is called with ACTION argument
(dolist (local-var-name locals-names-list)
- (if (and frame-data-hash
- (gethash local-var-name frame-data-hash))
+ (if (and (not (eq action 'hideall))
+ (or (and frame-data-hash (gethash local-var-name frame-data-hash))
+ (and (not frame-data-hash) realgud-immediately-show-all-locals)
+ (eq action 'showall) ))
(puthash local-var-name
(realgud-locals-get-variable-data local-var-name)
new-frame-data-hash)
@@ -119,7 +127,8 @@ LOCAL-VAR-NAME - variable to inspect"
LOCAL-VAR-NAME - variable to toggle"
(interactive "sVariable: ")
- (let* ((frame-id 'frame_id_placeholder)
+ (let* ((locals-names-list (realgud-run-command-get-output
'realgud:cmd-info-locals-name-list))
+ (frame-id locals-names-list)
(locals-data-hash (realgud-get-info 'locals-data))
(frame-data-hash (gethash frame-id locals-data-hash))
(value nil))
@@ -128,12 +137,32 @@ LOCAL-VAR-NAME - variable to toggle"
(puthash local-var-name value frame-data-hash) )
(realgud-locals-insert) )
+(defun realgud:locals-show-all-values ()
+ "Expand values of all variables."
+ ;; TODO in future this function should use separated debugger command that
would get all values
+ ;; in single call. Current implementation may be painful to use during
remote debugging
+ ;; in high latency networks.
+ (interactive)
+ (with-current-buffer-safe (realgud-get-cmdbuf)
+ (realgud-locals-register-reload 'showall)
+ (realgud-locals-insert) )
+ )
+
+(defun realgud:locals-hide-all-values ()
+ "Collapse values of all variables."
+ (interactive)
+ (with-current-buffer-safe (realgud-get-cmdbuf)
+ (realgud-locals-register-reload 'hideall)
+ (realgud-locals-insert) )
+ )
+
(defun realgud-locals-insert ()
"Serialize and format locales data."
- (let ((frame-data-hash
- (gethash 'frame_id_placeholder (realgud-get-info 'locals-data)))
- (variable-data nil)
- (prev-buffer-end (point-min)) )
+ (let* ((locals-names-list (realgud-run-command-get-output
'realgud:cmd-info-locals-name-list))
+ (frame-data-hash
+ (gethash locals-names-list (realgud-get-info 'locals-data)))
+ (variable-data nil)
+ (prev-buffer-end (point-min)) )
(with-current-buffer (realgud-get-locals-buf)
(setq buffer-read-only nil)
(delete-region (point-min) (point-max))
diff --git a/realgud/common/custom.el b/realgud/common/custom.el
index 771bc31..ea69c3d 100644
--- a/realgud/common/custom.el
+++ b/realgud/common/custom.el
@@ -25,6 +25,11 @@ A setting of `nil` allows editing, but Short-Key-mode use
may inhibit this."
:type 'boolean
:group 'realgud)
+(defcustom realgud-immediately-show-all-locals t
+ "Immediately expand all values in locals window."
+ :type 'boolean
+ :group 'realgud)
+
(defcustom realgud-update-hook nil
"List of hooks to be run when debugger hits breakpoint"
:type 'hook
diff --git a/realgud/common/locals-mode.el b/realgud/common/locals-mode.el
index 4b3ec81..badc3b6 100644
--- a/realgud/common/locals-mode.el
+++ b/realgud/common/locals-mode.el
@@ -24,8 +24,10 @@
(let ((map (realgud-populate-debugger-menu (make-sparse-keymap))))
(suppress-keymap map)
(realgud-populate-common-keys map)
- (define-key map "q" 'realgud:cmd-quit)
- (define-key map "L" 'realgud:window-locals)
+ (define-key map "q" 'realgud:cmd-quit)
+ (define-key map "L" 'realgud:window-locals)
+ (define-key map "s" 'realgud:locals-show-all-values)
+ (define-key map "h" 'realgud:locals-hide-all-values)
map)
)
- [elpa] externals/realgud ea6774e 10/72: Travis 7th try, (continued)
- [elpa] externals/realgud ea6774e 10/72: Travis 7th try, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud b4a25f8 15/72: Test using more emacs versions, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 3a3a94e 21/72: Travis has changed - attempted fix #3, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud cf1c7c4 18/72: Improve instruction for building from source, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 703cd5d 27/72: Travis has changed - attempted fix #9, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud b854e04 32/72: Create FUNDING.yml, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 20d8119 33/72: realgud-clear-bufferr & realgud-truncate-buffer.., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud d2be4cf 45/72: http:// -> https://, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 52fac1f 48/72: add realgud:window-locals-undisturb-src, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud f0a3676 44/72: Add "Signals" menu in comint debugger shells, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 332d136 61/72: Merge pull request #282 from 813gan/list-all-locals,
Stefan Monnier <=
- [elpa] externals/realgud a5fff14 69/72: Merge pull request #287 from yangyingchao/hotfix_failed_to_load_helper, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud bc3971a 08/72: Travis 6th try, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 854a040 16/72: One more emacs version to try, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud cc5d123 17/72: One more emacs version to try, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud d4d65f3 22/72: Travis has changed - attempted fix #4, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud b0ff316 24/72: Travis has changed - attempted fix #6, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 9814710 25/72: Travis has changed - attempted fix #7, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 94f2835 31/72: Just another remake test, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 51f55ce 35/72: Try to fix travisCI, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 1238d8e 37/72: Fix bug when invalid debugger name ..., Stefan Monnier, 2021/03/26