diff options
author | jao <jao@gnu.org> | 2025-10-22 03:16:35 +0100 |
---|---|---|
committer | jao <jao@gnu.org> | 2025-10-22 03:16:35 +0100 |
commit | d480208a93932db78a49fc01470421ee88f25160 (patch) | |
tree | bb66a62b347d416842a5c82d124f756fa1e0e96c /lib/eos/jao-minibuffer.el | |
parent | 30d3dd9c3298bbbea73cab95b43da5a435fa20d9 (diff) | |
download | elibs-d480208a93932db78a49fc01470421ee88f25160.tar.gz elibs-d480208a93932db78a49fc01470421ee88f25160.tar.bz2 |
jao-minibuffer: configurable faces and wee fixes
Diffstat (limited to 'lib/eos/jao-minibuffer.el')
-rw-r--r-- | lib/eos/jao-minibuffer.el | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/lib/eos/jao-minibuffer.el b/lib/eos/jao-minibuffer.el index 05750ca..629ce8d 100644 --- a/lib/eos/jao-minibuffer.el +++ b/lib/eos/jao-minibuffer.el @@ -34,6 +34,8 @@ (defvar jao-minibuffer-active-buffer-line-color "azure4") (defvar jao-minibuffer-inactive-buffer-line-color "grey25") (defvar jao-minibuffer-inhibit nil) +(defvar jao-minibuffer-info-face 'default) +(defvar jao-minibuffer-info-face-alt 'default) (defconst jao-minibuffer--name " *Minibuf-0*") @@ -47,12 +49,12 @@ (jao-minibuffer-maximized-frames-p (frame-width)) (t (min (frame-width) (window-width (minibuffer-window)))))) -(defun jao-minibuffer--format-info (&optional info) - (let* ((info (or info jao-minibuffer-info)) - (info (if jao-minibuffer-align-right info (reverse info)))) - (mapconcat #'string-trim - (seq-remove #'string-blank-p (mapcar 'format-mode-line info)) - " "))) +(defun jao-minibuffer--format-info (&optional info alt-p) + (let* ((face (if alt-p jao-minibuffer-info-face-alt jao-minibuffer-info-face)) + (info (or info jao-minibuffer-info)) + (info (if jao-minibuffer-align-right info (reverse info))) + (info (seq-remove #'string-blank-p (mapcar 'format-mode-line info)))) + (propertize (mapconcat #'string-trim info " ") 'face face))) (defun jao-minibuffer--aligned (w) (let* ((msg (jao-minibuffer--format-info)) @@ -79,7 +81,8 @@ (defun jao-minibuffer--format-msg (msg) (let* ((msgs (mapcar #'jao-minibuffer--strip-prev (split-string msg "\n" t))) - (msgs (cl-remove-if (lambda (s) (get-text-property 0 'invisible s)) msgs)) + (msgs + (seq-remove (lambda (s) (get-text-property 0 'invisible s)) msgs)) (prefix (jao-minibuffer--prefix msgs)) (msg (or (car (last msgs)) "")) (w (string-width msg))) @@ -91,15 +94,11 @@ (when jao-minibuffer-mode (or (and (string= jao-minibuffer--name (or (buffer-name) "")) msg) jao-minibuffer-inhibit - (let* ((info (and jao-minibuffer-msg-info - (jao-minibuffer--format-info - jao-minibuffer-msg-info))) - (info (or (and info msg (propertize info 'face 'jao-themes-dimm)) - info)) - (sep (if (string-empty-p info) "" " - ")) - (pref (when info - (let ((len (+ (string-width info) (string-width sep)))) - (format (format "\n%%%ds" len) "")))) + (and (not jao-minibuffer-msg-info) msg) + (let* ((info (jao-minibuffer--format-info jao-minibuffer-msg-info t)) + (sep (if (string-blank-p (or msg "")) "" " - ")) + (pref (let ((len (+ (string-width info) (string-width sep)))) + (format (format "\n%%%ds" len) ""))) (msg (if (and msg pref) (replace-regexp-in-string "\n" pref msg) msg)) @@ -142,10 +141,10 @@ :global t :lighter "" :group 'jao (if jao-minibuffer-mode (progn ;; (advice-add 'select-window :after #'jao-minibuffer-refresh) - (advice-add 'select-window :after #'jao-minibuffer--adjust-alignment) - (advice-add 'force-mode-line-update :after #'jao-minibuffer-refresh) - (setq clear-message-function #'jao-minibuffer--clear-message) - (jao-minibuffer-refresh)) + (advice-add 'select-window :after #'jao-minibuffer--adjust-alignment) + (advice-add 'force-mode-line-update :after #'jao-minibuffer-refresh) + (setq clear-message-function #'jao-minibuffer--clear-message) + (jao-minibuffer-refresh)) (advice-remove 'select-window #'jao-minibuffer-refresh) (advice-remove 'force-mode-line-update #'jao-minibuffer-refresh) (setq clear-message-function nil) |