[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dape 473a9bbf17 2/6: Rework dape-info
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dape 473a9bbf17 2/6: Rework dape-info |
Date: |
Thu, 7 Dec 2023 12:57:53 -0500 (EST) |
branch: externals/dape
commit 473a9bbf17513f6829bdaada4ce9c38819842d8e
Author: Daniel Pettersson <daniel@dpettersson.net>
Commit: Daniel Pettersson <daniel@dpettersson.net>
Rework dape-info
---
README.org | 6 ++---
dape.el | 86 ++++++++++++++++++++++++++------------------------------------
2 files changed, 38 insertions(+), 54 deletions(-)
diff --git a/README.org b/README.org
index 92319629cc..2bafea858b 100644
--- a/README.org
+++ b/README.org
@@ -40,10 +40,8 @@ Currently =Dape= does not come with any debug adapter
configuration.
;; Info buffers to the right
;; (setq dape-buffer-window-arrangment 'right)
- ;; To remove info buffers
- ;; (remove-hook 'dape-update-ui-hooks 'dape-info-update)
-
- ;; To remove repl buffer on startup
+ ;; To not display info and/or buffers on startup
+ ;; (remove-hook 'dape-on-start-hooks 'dape-info)
;; (remove-hook 'dape-on-start-hooks 'dape-repl)
;; By default dape uses gdb keybinding prefix
diff --git a/dape.el b/dape.el
index 7b1da3a514..9d6abd5aea 100644
--- a/dape.el
+++ b/dape.el
@@ -266,7 +266,7 @@ Functions and symbols in configuration:
(const :tag "Left side" left)
(const :tag "Right side" right)))
-(defcustom dape-on-start-hooks '(dape-repl)
+(defcustom dape-on-start-hooks '(dape-repl dape-info)
"Hook to run on session start."
:type 'hook)
@@ -2422,8 +2422,9 @@ with ARGS."
('dape-info-scope-mode (format "Scope <%s>" identifier))
(_ (error "Unable to create mode from %s with %s" mode
identifier)))))
-(defun dape--info-buffer (mode &optional identifier)
- "Get or create info buffer with MODE and IDENTIFIER."
+(defun dape--info-buffer (mode &optional identifier skip-update)
+ "Get or create info buffer with MODE and IDENTIFIER.
+If SKIP-UPDATE is non nil skip updating buffer contents."
(let ((buffer
(or (dape--info-get-live-buffer mode identifier)
(get-buffer-create (dape--info-buffer-name mode identifier)))))
@@ -2432,7 +2433,8 @@ with ARGS."
(funcall mode)
(setq dape--info-buffer-identifier identifier)
(push buffer dape--info-buffers)))
- (dape--info-buffer-update buffer)
+ (unless skip-update
+ (dape--info-buffer-update buffer))
buffer))
(defmacro dape--info-buffer-command (name properties doc &rest body)
@@ -2470,55 +2472,35 @@ FN is executed on mouse-2 and ?r, BODY is executed
inside of let stmt."
(defun dape-info-update ()
"Update and display `dape-info-*' buffers."
- (pcase (dape--live-process t)
- ('nil
- (let ((buffers-to-update
- (seq-filter (lambda (buffer)
- (and (get-buffer-window buffer)
- (with-current-buffer buffer
- ;; TODO Should update watch buffer
- (or ;; (dape--info-buffer-p
'dape-info-watch-mode)
- (dape--info-buffer-p
'dape-info-breakpoints-mode)))))
- (dape--info-buffer-list))))
- (dolist (buffer buffers-to-update)
- (dape--info-buffer-update buffer))))
- (_
- ;; Open and update breakpoints and threads buffer
- (if-let ((opened-group-1-buffers
- (seq-filter (lambda (buffer)
- (and (get-buffer-window buffer)
- (with-current-buffer buffer
- (or (dape--info-buffer-p
'dape-info-breakpoints-mode)
- (dape--info-buffer-p
'dape-info-threads-mode)))))
- (dape--info-buffer-list))))
- (dolist (buffer opened-group-1-buffers)
- (dape--info-buffer-update buffer))
- (dape--display-buffer
- (dape--info-buffer 'dape-info-breakpoints-mode)))
- ;; Open and update stack buffer
- (dape--display-buffer
- (dape--info-buffer 'dape-info-stack-mode))
- ;; Open and update stack buffer
- (if-let ((opened-group-2-buffers
- (seq-filter (lambda (buffer)
- (and (get-buffer-window buffer)
- (with-current-buffer buffer
- (or (dape--info-buffer-p
'dape-info-scope-mode)
- (dape--info-buffer-p
'dape-info-watch-mode)))))
- (dape--info-buffer-list))))
- (dolist (buffer opened-group-2-buffers)
- (dape--info-buffer-update buffer))
- (dape--display-buffer
- (dape--info-buffer 'dape-info-scope-mode 0))))))
+ (dolist (buffer (dape--info-buffer-list))
+ (dape--info-buffer-update buffer)))
+
(defun dape-info ()
- "Update and display *dape-info* buffers or close buffers."
+ "Update and display *dape-info* buffers."
(interactive)
- (if-let ((buffers
- (seq-filter 'get-buffer-window (dape--info-buffer-list))))
- (dolist (buffer buffers)
- (kill-buffer buffer))
- (dape-info-update)))
+ ;; Open breakpoints if not group-1 buffer displayed
+ (unless (seq-find (lambda (buffer)
+ (and (get-buffer-window buffer)
+ (with-current-buffer buffer
+ (or (dape--info-buffer-p
'dape-info-breakpoints-mode)
+ (dape--info-buffer-p
'dape-info-threads-mode)))))
+ (dape--info-buffer-list))
+ (dape--display-buffer
+ (dape--info-buffer 'dape-info-breakpoints-mode 'skip-update)))
+ ;; Open and update stack buffer
+ (dape--display-buffer
+ (dape--info-buffer 'dape-info-stack-mode 'skip-update))
+ ;; Open stack 0 if not group-2 buffer displayed
+ (unless (seq-find (lambda (buffer)
+ (and (get-buffer-window buffer)
+ (with-current-buffer buffer
+ (or (dape--info-buffer-p 'dape-info-scope-mode)
+ (dape--info-buffer-p
'dape-info-watch-mode)))))
+ (dape--info-buffer-list))
+ (dape--display-buffer
+ (dape--info-buffer 'dape-info-scope-mode 0 'skip-update)))
+ (dape-info-update))
;;; Info breakpoints buffer
@@ -2936,6 +2918,10 @@ CB is expected to be `dape--info-scope-update'."
(when-let* ((process (dape--live-process t))
(frame (dape--current-stack-frame))
(scopes (plist-get frame :scopes))
+ ;; FIXME if scope is out of range here scope list could
+ ;; have shrunk since last update and current
+ ;; scope buffer should be killed and replaced if
+ ;; if visible
(scope (nth dape--info-buffer-identifier scopes)))
(dape--with dape--variables (process scope)
(dape--with dape--variables-recursive
- [elpa] externals/dape updated (648e3f0e97 -> c93d003710), ELPA Syncer, 2023/12/07
- [elpa] externals/dape 68e92646c4 3/6: Add dape-on-stopped-hooks, ELPA Syncer, 2023/12/07
- [elpa] externals/dape 473a9bbf17 2/6: Rework dape-info,
ELPA Syncer <=
- [elpa] externals/dape 01549337ae 1/6: Add config printouts to dape-debug, ELPA Syncer, 2023/12/07
- [elpa] externals/dape 050e9166b3 4/6: Improve repl completion, ELPA Syncer, 2023/12/07
- [elpa] externals/dape 33b0d1e44a 5/6: Flush contents of process buffer on exit into debug buffer, ELPA Syncer, 2023/12/07
- [elpa] externals/dape c93d003710 6/6: Make sure stack pointers are removed on restart, ELPA Syncer, 2023/12/07