[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/sesman 163984c60e 059/100: Better handling of overlays and
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/sesman 163984c60e 059/100: Better handling of overlays and sensor |
Date: |
Tue, 28 Dec 2021 14:06:02 -0500 (EST) |
branch: elpa/sesman
commit 163984c60e8b5abf41e8f90894af08187647663b
Author: Vitalie Spinu <spinuvit@gmail.com>
Commit: Vitalie Spinu <spinuvit@gmail.com>
Better handling of overlays and sensor
---
sesman-browser.el | 52 +++++++++++++++++++++++++++++-----------------------
1 file changed, 29 insertions(+), 23 deletions(-)
diff --git a/sesman-browser.el b/sesman-browser.el
index d8b3f868c7..6c873eba02 100644
--- a/sesman-browser.el
+++ b/sesman-browser.el
@@ -299,6 +299,17 @@ If NO-SWITCH is non-nil, only display the buffer."
(sesman-browser-revert))))
(buffer-list)))
+(defun sesman-browser--goto-stop (stop-value)
+ (let ((search t))
+ (goto-char (point-min))
+ (while search
+ (goto-char (next-single-char-property-change (point) :sesman-stop))
+ (if (eobp)
+ (progn (setq search nil)
+ (goto-char (next-single-char-property-change (point-min)
:sesman-stop)))
+ (when (equal (get-text-property (point) :sesman-stop) stop-value)
+ (setq search nil))))))
+
(defun sesman-browser-toggle-sort ()
"Toggle sorting of sessions.
See `sesman-browser-sort-type' for the default sorting type."
@@ -311,15 +322,8 @@ See `sesman-browser-sort-type' for the default sorting
type."
(setq sesman-browser-sort-type (pop sesman-browser--sort-types))
(let ((stop (sesman-browser-get :sesman-stop nil 'lax)))
(sesman-browser)
- (goto-char (point-min))
- (let ((search t))
- (while search
- (goto-char (next-single-char-property-change (point) :sesman-stop))
- (if (eobp)
- (progn (setq search nil)
- (goto-char (next-single-char-property-change (point-min)
:sesman-stop)))
- (when (equal (get-text-property (point) :sesman-stop) stop)
- (setq search nil))))))
+ (sesman-browser--goto-stop stop)
+ (sesman-browser--sensor-function))
(message "Sorted by %s"
(propertize (symbol-name sesman-browser-sort-type) 'face 'bold)))
@@ -327,7 +331,16 @@ See `sesman-browser-sort-type' for the default sorting
type."
"Interactive view of Sesman sessions."
;; ensure there is a sesman-system here
(sesman--system)
+ (delete-all-overlays)
+ (setq-local sesman-browser--stop-overlay (make-overlay (point) (point)))
+ (overlay-put sesman-browser--stop-overlay 'face 'sesman-browser-highligh)
+ (setq-local sesman-browser--section-overlay (make-overlay (point) (point)))
+ (when window-system
+ (let* ((fringe-spec '(left-fringe sesman-left-bar sesman-browser-highligh))
+ (dummy-string (propertize "|" 'display fringe-spec)))
+ (overlay-put sesman-browser--section-overlay 'line-prefix dummy-string)))
(add-hook 'sesman-post-command-hook 'sesman-browser-revert nil t)
+ (setq-local display-buffer-base-action '(nil . ((inhibit-same-window . t))))
(setq-local sesman-browser--sort-types (default-value
'sesman-browser--sort-types))
(setq-local revert-buffer-function #'sesman-browser-revert))
@@ -411,9 +424,11 @@ See `sesman-browser-sort-type' for the default sorting
type."
"Display an interactive session browser."
(interactive)
(let* ((system (sesman--system))
+ (pop-to (called-interactively-p 'any))
(sessions (sesman-sessions system))
- (buff (get-buffer-create (format "*sesman %s browser*" system)))
- (pop-to (called-interactively-p 'any)))
+ (cur-session (when pop-to
+ (sesman-current-session 'CIDER)))
+ (buff (get-buffer-create (format "*sesman %s browser*" system))))
(with-current-buffer buff
(setq-local sesman-system system)
(sesman-browser-mode)
@@ -431,18 +446,9 @@ See `sesman-browser-sort-type' for the default sorting
type."
(setq i (1+ i))
(sesman-browser--insert-session system ses i))
(when pop-to
- (pop-to-buffer buff))
- (let ((dummy-string (ess-tracebug--propertize "|" 'sesman-left-bar
-
'font-lock-keyword-face)))
- (goto-char (next-single-property-change (point-min) :sesman-stop))
- (setq-local sesman-browser--stop-overlay
- (make-overlay (point) (next-single-property-change
(point) :sesman-stop)))
- (overlay-put sesman-browser--stop-overlay 'face
'sesman-browser-highligh)
- (when window-system
- (setq-local sesman-browser--section-overlay
- (make-overlay (get-text-property (point)
:sesman-fragment-beg)
- (get-text-property (point)
:sesman-fragment-end)))
- (overlay-put sesman-browser--section-overlay 'line-prefix
dummy-string)))))))
+ (pop-to-buffer buff)
+ (sesman-browser--goto-stop (car cur-session)))
+ (sesman-browser--sensor-function)))))
(provide 'sesman-browser)
- [nongnu] elpa/sesman e8bfb0e379 091/100: Convert buffers to strings during formatting, (continued)
- [nongnu] elpa/sesman e8bfb0e379 091/100: Convert buffers to strings during formatting, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman fe92090cb6 099/100: Reformulate sesman-unlink docs, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 16fb6eca09 016/100: Fix package-lint issues, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman cdb8e0973a 018/100: Port back from CIDER, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman d8f293ff6e 024/100: Fix MELPA badge link, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman ea2e4fa0fe 039/100: Propagate system through `sesman-context`, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 47678331da 051/100: New semantics of sesman-session-info generic, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 5a11793697 054/100: Fix tests and checkdoc, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 34521cd5c2 049/100: Fix buffer lookup, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 3df33018f1 089/100: Strip trailing slash in `sesman-expand-path`, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 163984c60e 059/100: Better handling of overlays and sensor,
ELPA Syncer <=
- [nongnu] elpa/sesman 6b0d6e318d 062/100: New UI and API functions sesman-link-with-least-specific and sesman-link-session, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 2b5135c00a 064/100: Version 0.2.1, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 209d9966e5 008/100: Renaming, refactoring ..., ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 665721c52f 066/100: Move context faces to sesman.el and use for info display, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 5a9727ee82 072/100: Expand all paths with file-truename and cache, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 14475d8192 080/100: [Fix #10] Defalias sesman-link-session, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 53efa0a9ca 086/100: Honor sesman-follow-symlinks in path expansion and project lookup, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 04df98807f 070/100: Change font of sesman-buffer-face, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 7fe522431e 068/100: Expand file-name because the backend might not do it, ELPA Syncer, 2021/12/28
- [nongnu] elpa/sesman 35d6562ad8 006/100: Add more link specific utilities, ELPA Syncer, 2021/12/28