emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/vertico 5c4a2cbe99 1/2: Simplify resizing


From: ELPA Syncer
Subject: [elpa] externals/vertico 5c4a2cbe99 1/2: Simplify resizing
Date: Sun, 8 Dec 2024 18:59:10 -0500 (EST)

branch: externals/vertico
commit 5c4a2cbe9916c2761bfb56ac129eb4b8f9210b22
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Simplify resizing
    
    Rely on the `resize-mini-windows' setting to behave correctly. On old Emacs
    versions the resizing wasn't reliable.
---
 CHANGELOG.org                 |  1 +
 extensions/vertico-buffer.el  |  2 +-
 extensions/vertico-flat.el    |  6 ++++--
 extensions/vertico-reverse.el |  3 +--
 vertico.el                    | 22 +++++++---------------
 5 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index 9ceb4c81f3..518b75e466 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -10,6 +10,7 @@
 - Drop obsolete command alias ~vertico-repeat-last~.
 - ~vertico-buffer~: Use ~display-buffer-use-least-recent-window~ as default 
buffer
   display action.
+- Simplify the mini window resizing implementation, see ~vertico--resize~.
 
 * Version 1.9 (2024-07-26)
 
diff --git a/extensions/vertico-buffer.el b/extensions/vertico-buffer.el
index f58d804704..e2404f1359 100644
--- a/extensions/vertico-buffer.el
+++ b/extensions/vertico-buffer.el
@@ -208,7 +208,7 @@
        ((and (not vertico-buffer-mode) vertico-buffer--restore)
         (funcall vertico-buffer--restore))))))
 
-(cl-defmethod vertico--resize-window (_height &context (vertico-buffer-mode 
(eql t))))
+(cl-defmethod vertico--resize (&context (vertico-buffer-mode (eql t))))
 
 (cl-defmethod vertico--setup :after (&context (vertico-buffer-mode (eql t)))
   (vertico-buffer--setup))
diff --git a/extensions/vertico-flat.el b/extensions/vertico-flat.el
index 11b334c9db..11ff7bf739 100644
--- a/extensions/vertico-flat.el
+++ b/extensions/vertico-flat.el
@@ -83,9 +83,11 @@
   (when vertico-flat-mode
     (push `(vertico--input . ,vertico-flat-map) minor-mode-map-alist)))
 
-(cl-defmethod vertico--display-candidates (candidates &context 
(vertico-flat-mode (eql t)))
+(cl-defmethod vertico--resize (&context (vertico-flat-mode (eql t)))
   (setq-local truncate-lines nil
-              resize-mini-windows t)
+              resize-mini-windows t))
+
+(cl-defmethod vertico--display-candidates (candidates &context 
(vertico-flat-mode (eql t)))
   (move-overlay vertico--candidates-ov (point-max) (point-max))
   (overlay-put
    vertico--candidates-ov 'after-string
diff --git a/extensions/vertico-reverse.el b/extensions/vertico-reverse.el
index 2b1b6c3b16..13732b0e56 100644
--- a/extensions/vertico-reverse.el
+++ b/extensions/vertico-reverse.el
@@ -73,8 +73,7 @@
   (let ((string (apply #'concat lines)))
     (add-face-text-property 0 (length string) 'default 'append string)
     (overlay-put vertico--candidates-ov 'before-string string)
-    (overlay-put vertico--candidates-ov 'after-string nil))
-  (vertico--resize-window (length lines)))
+    (overlay-put vertico--candidates-ov 'after-string nil)))
 
 (provide 'vertico-reverse)
 ;;; vertico-reverse.el ends here
diff --git a/vertico.el b/vertico.el
index 5e613a6e11..d33cc7b43f 100644
--- a/vertico.el
+++ b/vertico.el
@@ -522,7 +522,8 @@ The function is configured by BY, BSIZE, BINDEX, BPRED and 
PRED."
     (vertico--update 'interruptible)
     (vertico--prompt-selection)
     (vertico--display-count)
-    (vertico--display-candidates (vertico--arrange-candidates))))
+    (vertico--display-candidates (vertico--arrange-candidates))
+    (vertico--resize)))
 
 (defun vertico--goto (index)
   "Go to candidate with INDEX."
@@ -604,23 +605,14 @@ The function is configured by BY, BSIZE, BINDEX, BPRED 
and PRED."
   "Update candidates overlay `vertico--candidates-ov' with LINES."
   (move-overlay vertico--candidates-ov (point-max) (point-max))
   (overlay-put vertico--candidates-ov 'after-string
-               (apply #'concat #(" " 0 1 (cursor t)) (and lines "\n") lines))
-  (vertico--resize-window (length lines)))
+               (apply #'concat #(" " 0 1 (cursor t)) (and lines "\n") lines)))
 
-(cl-defgeneric vertico--resize-window (height)
-  "Resize active minibuffer window to HEIGHT."
+(cl-defgeneric vertico--resize ()
+  "Resize active minibuffer window."
   (setq-local truncate-lines (< (point) (* 0.8 (vertico--window-width)))
-              resize-mini-windows 'grow-only
+              resize-mini-windows vertico-resize
               max-mini-window-height 1.0)
-  (unless truncate-lines (set-window-hscroll nil 0))
-  (unless (frame-root-window-p (active-minibuffer-window))
-    (unless vertico-resize (setq height (max height vertico-count)))
-    (let ((dp (- (max (cdr (window-text-pixel-size))
-                      (* (default-line-height) (1+ height)))
-                 (window-pixel-height))))
-      (when (or (and (> dp 0) (/= height 0))
-                (and (< dp 0) (eq vertico-resize t)))
-        (window-resize nil dp nil nil 'pixelwise)))))
+  (unless truncate-lines (set-window-hscroll nil 0)))
 
 (cl-defgeneric vertico--prepare ()
   "Ensure that the state is prepared before running the next command."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]