[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