[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/blist a24f9d6d35 06/31: fix `blist-select'
From: |
ELPA Syncer |
Subject: |
[elpa] externals/blist a24f9d6d35 06/31: fix `blist-select' |
Date: |
Tue, 28 Dec 2021 16:57:28 -0500 (EST) |
branch: externals/blist
commit a24f9d6d35718619864f6ba95afa3e5d343bb99e
Author: JSDurand <mmemmew@gmail.com>
Commit: JSDurand <mmemmew@gmail.com>
fix `blist-select'
* blist.el (blist-prepare-select-windows, blist-select): Now the user
can interactively choose how to select multiple bookmarks. And the
spiral behaviour is also fixed now; previously it was not exactly a
spiral.
---
blist.el | 71 +++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 43 insertions(+), 28 deletions(-)
diff --git a/blist.el b/blist.el
index 86e09aa6e4..954eccb866 100644
--- a/blist.el
+++ b/blist.el
@@ -317,8 +317,6 @@ used as a `revert-buffer-function'."
(first-time-generated t))
(with-current-buffer buffer
(let ((inhibit-read-only t)
- ;; a final newline is important
- (delete-trailing-lines nil)
front rear group pos)
(widen)
(cond
@@ -378,9 +376,10 @@ used as a `revert-buffer-function'."
(blist-display-location-p (list blist-location-column))))
blist-filter-groups
blist-discard-empty-p
- blist-sorter))
+ blist-sorter
+ t))
(insert (string #xa))
- (delete-trailing-whitespace)
+ ;; (delete-trailing-whitespace)
(goto-char (point-min))
(cond
((and
@@ -441,8 +440,7 @@ used as a `revert-buffer-function'."
(define-key map (vector ?a) #'blist-show-annotation)
(define-key map (vector ?A) #'blist-show-all-annotations)
(define-key map (vector ?e) #'blist-edit-annotation)
- (define-key map (vector ?/) #'blist-search)
- (define-key map (vector ?s) #'blist-save)
+ (define-key map (vector ?s) #'bookmark-save)
(define-key map (vector ?l) #'blist-load)
(define-key map (vector #x29) #'blist-next-marked)
(define-key map (vector #x28) #'blist-prev-marked)
@@ -551,21 +549,22 @@ range, unless region is active."
;;;;; Prepare windows
-(defun blist-prepare-select-windows (num)
- "Create and return NUM windows according to \
-`blist-select-manner'.
+(defun blist-prepare-select-windows (num manner)
+ "Create and return NUM windows according to MANNER.
-NUM should be a positive integer."
+NUM should be a positive integer.
+
+See `blist-select-manner' for what MANNER should look like."
(cond
((or (not (integerp num))
(<= num 0))
(error "NUM should be a positive integer, but got %S" num)))
- (let* ((mainp (memq 'main-side blist-select-manner))
- (tabp (cond (mainp nil) ((memq 'tab blist-select-manner))))
- (verticalp (memq 'vertical blist-select-manner))
- (leftp (memq 'left blist-select-manner))
- (upp (memq 'up blist-select-manner))
- (spiralp (memq 'spiral blist-select-manner))
+ (let* ((mainp (memq 'main-side manner))
+ (tabp (cond (mainp nil) ((memq 'tab manner))))
+ (verticalp (memq 'vertical manner))
+ (leftp (memq 'left manner))
+ (upp (memq 'up manner))
+ (spiralp (memq 'spiral manner))
(size (cond
;; spirals split in half
(spiralp nil)
@@ -606,8 +605,15 @@ NUM should be a positive integer."
(setq windows (cons temp-window windows))
;; change direction for spirals and change direction only once
;; for main-side
- (cond ((or spiralp
- (and mainp (not main-side-splitted-p)))
+ (cond (spiralp
+ (setq current-direction (not current-direction))
+ ;; spirals change the horizontal / vertical directions as
+ ;; well
+ (cond
+ (current-direction
+ (setq leftp (not leftp)))
+ ((setq upp (not upp)))))
+ ((and mainp (not main-side-splitted-p))
(setq current-direction (not current-direction))
(setq main-side-splitted-p t)))
(setq num (1- num)))
@@ -616,7 +622,7 @@ NUM should be a positive integer."
;;;;; select function
;;;###autoload
-(defun blist-select ()
+(defun blist-select (&optional arg)
"Open all marked bookmarks.
If there are no marked bookmarks, and if the point is on a group
header, open all bookmarks of the group.
@@ -626,9 +632,11 @@ bookmark line, then open the bookmark on that line.
Otherwise signal an error.
-How the bookmarks are opened are controlled by the variable
-`blist-select-manner'."
- (interactive)
+If called with \\[universal-argument], read a list for how to
+select multiple bookmarks. Otherwise, the variable
+`blist-select-manner' controls how multiple bookmarks are
+selected."
+ (interactive "P")
(blist-assert-mode)
(let* ((marked-items (ilist-map-lines #'ilist-get-index
#'ilist-is-marked))
@@ -649,8 +657,19 @@ How the bookmarks are opened are controlled by the variable
(marked-items (mapcar
(lambda (index) (nth index bookmark-alist))
marked-items))
+ (manner (cond
+ (arg
+ (mapcar
+ #'intern
+ (completing-read-multiple
+ "How to select multiple bookmarks: "
+ (list
+ 'vertical 'horizontal 'spiral 'main-side
+ 'left 'right 'up 'down 'tab)
+ nil t)))
+ (blist-select-manner)))
(windows (blist-prepare-select-windows
- (length marked-items)))
+ (length marked-items) manner))
(orig-window (car windows)))
(while (consp windows)
(select-window (car windows))
@@ -869,7 +888,7 @@ window."
(mapconcat
(lambda (str)
(concat (make-string 4 #x20) str))
- (split-string (format "%s\n" anno))
+ (split-string (format "%s" anno))
(string #xa))
"\n"))
(""))))
@@ -880,10 +899,6 @@ window."
;;;; edit annotations
-;;;; search (limit)
-
-;;;; save
-
;;;; load
;;;; blist-toggle-group
- [elpa] branch externals/blist created (now e7d56657eb), ELPA Syncer, 2021/12/28
- [elpa] externals/blist 97a8b93b12 01/31: initial working version, ELPA Syncer, 2021/12/28
- [elpa] externals/blist 896e5568f8 04/31: More features, ELPA Syncer, 2021/12/28
- [elpa] externals/blist a4c0a7626f 07/31: fix defcustom problem, ELPA Syncer, 2021/12/28
- [elpa] externals/blist fa54e09b57 03/31: More features, ELPA Syncer, 2021/12/28
- [elpa] externals/blist a24f9d6d35 06/31: fix `blist-select',
ELPA Syncer <=
- [elpa] externals/blist a0b9bc4eb5 18/31: * blist.el (blist-relocate): Fix a bug caused by a typo., ELPA Syncer, 2021/12/28
- [elpa] externals/blist 950a214456 28/31: New option: blist-use-header-p, ELPA Syncer, 2021/12/28
- [elpa] externals/blist 4a5eb414f7 27/31: Fix errors and byte-compile, ELPA Syncer, 2021/12/28
- [elpa] externals/blist db67745821 13/31: Fix some README issues, ELPA Syncer, 2021/12/28
- [elpa] externals/blist c868a2d8b3 24/31: * blist.el (blist-all-bookmarks): refactor, ELPA Syncer, 2021/12/28
- [elpa] externals/blist eddd17ce4d 14/31: try to fix image, ELPA Syncer, 2021/12/28
- [elpa] externals/blist 4a4d94c09d 20/31: blist.el: QoL refinements, ELPA Syncer, 2021/12/28
- [elpa] externals/blist c2f4bc47d4 25/31: fix previous bugs caused by invisibility, ELPA Syncer, 2021/12/28
- [elpa] externals/blist f1b556af33 12/31: Add README, ELPA Syncer, 2021/12/28
- [elpa] externals/blist 48510bdefa 05/31: preserve the original point in building the list, ELPA Syncer, 2021/12/28