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

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

[elpa] externals/vertico-posframe 99e35d66a2 3/5: Add vertico-posframe-b


From: ELPA Syncer
Subject: [elpa] externals/vertico-posframe 99e35d66a2 3/5: Add vertico-posframe-border-2/3/4/fallback faces.
Date: Tue, 11 Jan 2022 20:58:13 -0500 (EST)

branch: externals/vertico-posframe
commit 99e35d66a269763f71be21982ee822b2538feb98
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Add vertico-posframe-border-2/3/4/fallback faces.
    
            * vertico-posframe.el (vertico-posframe-border-2)
            (vertico-posframe-border-3, vertico-posframe-border-4)
            (vertico-posframe-border-fallback): New face.
            (vertico-posframe--get-border-color): New function.
            (vertico-posframe--show): Use vertico-posframe--get-border-color.
---
 vertico-posframe.el | 41 +++++++++++++++++++++++++++++++++++------
 1 file changed, 35 insertions(+), 6 deletions(-)

diff --git a/vertico-posframe.el b/vertico-posframe.el
index a4a9ce2c8a..0d3a2727b8 100644
--- a/vertico-posframe.el
+++ b/vertico-posframe.el
@@ -127,7 +127,27 @@ minibuffer will not be hided by minibuffer-cover."
 
 (defface vertico-posframe-border
   '((t (:inherit default :background "gray50")))
-  "Face used by the vertico-posframe's border."
+  "Face used by the vertico-posframe's border when minibuffer-depth = 1."
+  :group 'vertico-posframe)
+
+(defface vertico-posframe-border-2
+  '((t (:inherit default :background "red")))
+  "Face used by the vertico-posframe's border when minibuffer-depth = 2."
+  :group 'vertico-posframe)
+
+(defface vertico-posframe-border-3
+  '((t (:inherit default :background "green")))
+  "Face used by the vertico-posframe's border when minibuffer-depth = 3."
+  :group 'vertico-posframe)
+
+(defface vertico-posframe-border-4
+  '((t (:inherit default :background "blue")))
+  "Face used by the vertico-posframe's border when minibuffer-depth = 4."
+  :group 'vertico-posframe)
+
+(defface vertico-posframe-border-fallback
+  '((t (:inherit default :background "yellow")))
+  "Face used by the vertico-posframe's border when find no face."
   :group 'vertico-posframe)
 
 (defvar vertico-posframe--buffer nil)
@@ -193,11 +213,7 @@ is called, window-point will be set to WINDOW-POINT."
                          :background-color (face-attribute 'vertico-posframe 
:background nil t)
                          :foreground-color (face-attribute 'vertico-posframe 
:foreground nil t)
                          :border-width vertico-posframe-border-width
-                         :border-color
-                         (let ((color (face-attribute 'vertico-posframe-border 
:background nil t)))
-                           (or (nth (- (minibuffer-depth) 1)
-                                    (list color "red" "yellow" "green" "blue" 
"purple"))
-                               color))
+                         :border-color (vertico-posframe--get-border-color)
                          :override-parameters vertico-posframe-parameters
                          :refposhandler vertico-posframe-refposhandler
                          :hidehandler #'vertico-posframe-hidehandler
@@ -214,6 +230,19 @@ is called, window-point will be set to WINDOW-POINT."
       (setq-local cursor-type t)
       (setq-local cursor-in-non-selected-windows 'box))))
 
+(defun vertico-posframe--get-border-color ()
+  "Get color of vertico-posframe border."
+  (face-attribute
+   (let* ((n (minibuffer-depth))
+          (face (intern (format "vertico-posframe-border-%s" n)))
+          (face-fallback 'vertico-posframe-border-fallback))
+     (if (= n 1)
+         'vertico-posframe-border
+       (if (facep face)
+           face
+         face-fallback)))
+   :background))
+
 (defun vertico-posframe--show-minibuffer-p ()
   "Test show minibuffer or not."
   (cl-some



reply via email to

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