[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master fcca1db: * lisp/tab-line.el: Add modified-buffer face
From: |
Juri Linkov |
Subject: |
master fcca1db: * lisp/tab-line.el: Add modified-buffer face |
Date: |
Sat, 25 Sep 2021 15:18:45 -0400 (EDT) |
branch: master
commit fcca1db9fd1eb2930f29972e7def0936c3269f1b
Author: Adam Porter <adam@alphapapa.net>
Commit: Juri Linkov <juri@linkov.net>
* lisp/tab-line.el: Add modified-buffer face
(tab-line-tab-modified): New face.
(tab-line-tab-face-modified): New function.
(tab-line-tab-face-functions): Use new function.
* etc/NEWS: Update.
---
etc/NEWS | 14 ++++++++------
lisp/tab-line.el | 21 ++++++++++++++++++++-
2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index ca167d6..d77d341 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -529,12 +529,14 @@ the mouse pointer is in the tab line by scrolling left or
right.
*** New tab-line faces and options.
The face 'tab-line-tab-special' is used for tabs whose buffers are
special, i.e. buffers that don't visit a file. The face
-'tab-line-tab-inactive-alternate' is used to display inactive tabs
-with an alternating background color, making them easier to
-distinguish, especially if the face 'tab-line-tab' is configured to
-not display with a box; this alternate face is only applied when the
-option 'tab-line-tab-face-functions' is so configured. That option
-may also be used to customize tab-line faces in other ways.
+'tab-line-tab-modified' is used to display modified, file-backed
+buffers. The face 'tab-line-tab-inactive-alternate' is used to
+display inactive tabs with an alternating background color, making
+them easier to distinguish, especially if the face 'tab-line-tab' is
+configured to not display with a box; this alternate face is only
+applied when the option 'tab-line-tab-face-functions' is so
+configured. That option may also be used to customize tab-line faces
+in other ways.
** Mouse wheel
diff --git a/lisp/tab-line.el b/lisp/tab-line.el
index 1f7af9e..4a751b3 100644
--- a/lisp/tab-line.el
+++ b/lisp/tab-line.el
@@ -36,13 +36,15 @@
:group 'convenience
:version "27.1")
-(defcustom tab-line-tab-face-functions '(tab-line-tab-face-special)
+(defcustom tab-line-tab-face-functions
+ '(tab-line-tab-face-modified tab-line-tab-face-special)
"Functions called to modify tab faces.
Each function is called with five arguments: the tab, a list of
all tabs, the face returned by the previously called modifier,
whether the tab is a buffer, and whether the tab is selected."
:type '(repeat
(choice (function-item tab-line-tab-face-special)
+ (function-item tab-line-tab-face-modified)
(function-item tab-line-tab-face-inactive-alternating)
(function-item tab-line-tab-face-group)
(function :tag "Custom function")))
@@ -92,6 +94,14 @@ function `tab-line-tab-face-special'."
:version "28.1"
:group 'tab-line-faces)
+(defface tab-line-tab-modified
+ '((t :inherit font-lock-doc-face))
+ "Face for modified tabs.
+Applied when option `tab-line-tab-face-functions' includes
+function `tab-line-tab-face-modified'."
+ :version "28.1"
+ :group 'tab-line-faces)
+
(defface tab-line-tab-group
'((t :inherit tab-line :box nil))
"Face for group tabs.
@@ -537,6 +547,15 @@ When TAB is a non-file-backed buffer, make FACE inherit
from
(setf face `(:inherit (tab-line-tab-special ,face))))
face)
+(defun tab-line-tab-face-modified (tab _tabs face buffer-p _selected-p)
+ "Return FACE for TAB according to whether it's modified.
+When TAB is a modified, file-backed buffer, make FACE inherit
+from `tab-line-tab-modified'. For use in
+`tab-line-tab-face-functions'."
+ (when (and buffer-p (buffer-file-name tab) (buffer-modified-p tab))
+ (setf face `(:inherit (tab-line-tab-modified ,face))))
+ face)
+
(defun tab-line-tab-face-group (tab _tabs face _buffer-p _selected-p)
"Return FACE for TAB according to whether it's a group tab.
For use in `tab-line-tab-face-functions'."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master fcca1db: * lisp/tab-line.el: Add modified-buffer face,
Juri Linkov <=