[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/beardbolt 4f4a7f85ac 223/323: Simplify visibility check
From: |
ELPA Syncer |
Subject: |
[elpa] externals/beardbolt 4f4a7f85ac 223/323: Simplify visibility check logic |
Date: |
Thu, 9 Mar 2023 10:58:33 -0500 (EST) |
branch: externals/beardbolt
commit 4f4a7f85ace8dfbeca57ba861eb8655571e245d7
Author: Erik Arvstedt <erik.arvstedt@gmail.com>
Commit: Erik Arvstedt <erik.arvstedt@gmail.com>
Simplify visibility check logic
- Add variable `scroll-src-buffer-p` (instead of `src-buffer-selected`)
to explicitly indicate which buffer should be scrolled.
- Only set `line-visible` at two places:
Once depending on whether the src buffer is scrolled (i.e.
scroll-src-buffer-p is
true) and once depending on whether the output buffer is scrolled.
- In case that `scroll-src-buffer-p` is true, skip the unneeded line
visibility calculation for the output-buffer.
---
rmsbolt.el | 41 +++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/rmsbolt.el b/rmsbolt.el
index 449ddb5963..b578c18ab9 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -1658,15 +1658,17 @@ Are you running two compilations at the same time?"))
(save-excursion
(rmsbolt--goto-line src-current-line)
(cl-values (c-point 'bol) (c-point 'bonl))))))
- (let ((line-visible (not rmsbolt-goto-match))
- (src-buffer-selected (eq (current-buffer) src-buffer)))
+ (let*
+ ;; If nil, output-buffer is scrolled instead
+ ((scroll-src-buffer-p (not (eq (current-buffer) src-buffer)))
+ (line-visible (or (not rmsbolt-goto-match)
+ (when scroll-src-buffer-p
+ (with-current-buffer src-buffer
+ (rmsbolt--point-visible (cl-first
src-pts)))))))
;; Remove existing overlays
(rmsbolt--cleanup-overlays)
(push (rmsbolt--setup-overlay (cl-first src-pts) (cl-second src-pts)
src-buffer)
rmsbolt-overlays)
- (unless src-buffer-selected
- (with-current-buffer src-buffer
- (setq line-visible (rmsbolt--point-visible (cl-first src-pts)))))
(with-current-buffer output-buffer
(let ((saved-pt (point)))
(save-excursion
@@ -1676,29 +1678,28 @@ Are you running two compilations at the same time?"))
(start-pt (progn (rmsbolt--goto-line start)
(c-point 'bol)))
(end-pt (progn (rmsbolt--goto-line end)
- (c-point 'bonl)))
- (visible (or line-visible
- (rmsbolt--point-visible start-pt)
- (rmsbolt--point-visible end-pt)
- (and (> saved-pt start-pt)
- (< saved-pt end-pt)))))
- ;; check if line is visible and set line-visible
- (unless (or line-visible (not src-buffer-selected))
- (setq line-visible visible))
+ (c-point 'bonl))))
+ (when (and (not line-visible)
+ (not scroll-src-buffer-p))
+ (setq line-visible (or (rmsbolt--point-visible start-pt)
+ (rmsbolt--point-visible end-pt)
+ (and (> saved-pt start-pt)
+ (< saved-pt end-pt)))))
(push (rmsbolt--setup-overlay start-pt end-pt
output-buffer)
rmsbolt-overlays)))))
(when (or (not line-visible) force)
;; Scroll buffer to first line
- (when-let ((scroll-buffer (if src-buffer-selected
- output-buffer
- src-buffer))
- (line-scroll (if src-buffer-selected
+ (when-let ((scroll-buffer (if scroll-src-buffer-p
+ src-buffer
+ output-buffer))
+ (line-scroll (if scroll-src-buffer-p
+ src-current-line
+ (progn
(car-safe
;; If forcing, pick the min line
instead
(if force
(car-safe (last asm-lines))
- (cl-first asm-lines)))
- src-current-line))
+ (cl-first asm-lines))))))
(window (get-buffer-window scroll-buffer)))
(with-selected-window window
(rmsbolt--goto-line line-scroll)
- [elpa] externals/beardbolt 2a83b76cd9 172/323: Prevent overriding windows when no output window available, (continued)
- [elpa] externals/beardbolt 2a83b76cd9 172/323: Prevent overriding windows when no output window available, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 820211abd4 169/323: Update supported languages list, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b47b9b4d74 175/323: Add support for Go, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a717d49879 198/323: Clear out default variables after post processing is finished, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt a06c8d9fc6 210/323: Add command `rmsbolt`, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 54bdd5090e 209/323: Add rustic-mode to default rust definitions, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 7c735240b0 192/323: Clean up buffer overlays explicitly on output buffer kill, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 1267509ab4 220/323: Move `rmsbolt-with-display-buffer-no-window`, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 8544df3e9d 222/323: Use `rmsbolt--cleanup-overlays`, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 42b0ab4239 225/323: Make it clear that we're operating on a list of asm regions, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 4f4a7f85ac 223/323: Simplify visibility check logic,
ELPA Syncer <=
- [elpa] externals/beardbolt 3a1e068bb8 228/323: Don't update overlays if the src buffer is no longer current, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b56d3b6cdb 245/323: Merge branch 'improve-starters' into 'master', ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 16f887917b 252/323: Improve rainbow color selection algorithm, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 9bc7e8aeb8 236/323: Remove `rmsbolt--post-command-hook` when mode is deactivated, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 660739681c 254/323: Rename every rms* file to beard*, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt f846655a35 250/323: Rework rmsbolt-rainbowize to reuse more code, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 78eed53af1 260/323: Don't hang a "[Compiling]" forever in the mode-line, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt b71d1bd763 265/323: * beardbolt.el (bb-compile): Fix handling of bb-asm-format., ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 4cbe58f834 279/323: Add -g1 instead of -g to speed it up massively, ELPA Syncer, 2023/03/09
- [elpa] externals/beardbolt 2542f24813 285/323: Tweak, rework, speed up main algorithm again, ELPA Syncer, 2023/03/09