emacs-diffs
[Top][All Lists]
Advanced

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

master 9fdc753: Add vc-dir faces; also apply them to vc-git


From: Lars Ingebrigtsen
Subject: master 9fdc753: Add vc-dir faces; also apply them to vc-git
Date: Mon, 8 Feb 2021 01:55:07 -0500 (EST)

branch: master
commit 9fdc753e1450d1b2eb610ef4fc55460d63688799
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Add vc-dir faces; also apply them to vc-git
    
    * etc/NEWS: Document the new faces.
    
    * lisp/vc/vc-dir.el (vc-dir-header, vc-dir-header-value)
    (vc-dir-directory, vc-dir-file, vc-dir-mark-indicator)
    (vc-dir-status-warning, vc-dir-status-edited, vc-dir-status-up-to-date)
    (vc-dir-ignored): Add new faces.
    
    * lisp/vc/vc-git.el (vc-git-permissions-as-string, vc-git-dir-printer)
    (vc-git-dir-extra-headers): Apply new faces (bug#46358).
---
 etc/NEWS          |  6 ++++++
 lisp/vc/vc-dir.el | 58 ++++++++++++++++++++++++++++++++++++++++++++-----------
 lisp/vc/vc-git.el | 37 +++++++++++++++++------------------
 3 files changed, 71 insertions(+), 30 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 05a8beb..40fe215 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -602,6 +602,12 @@ This is used when expanding commit messages from 
'vc-print-root-log'
 and similar commands.
 
 ---
+*** New faces for 'vc-dir' buffers and their Git VC backend.
+Those are: 'vc-dir-header', 'vc-dir-header-value', 'vc-dir-directory',
+'vc-dir-file', 'vc-dir-mark-indicator', 'vc-dir-status-warning',
+'vc-dir-status-edited', 'vc-dir-status-up-to-date', 'vc-dir-ignored'.
+
+---
 *** The responsible VC backend is now the most specific one.
 'vc-responsible-backend' loops over the backends in
 'vc-handled-backends' to determine which backend is responsible for a
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 9d0808c..14c8157 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -54,6 +54,42 @@ See `run-hooks'."
   :type 'hook
   :group 'vc)
 
+(defface vc-dir-header '((t :inherit font-lock-type-face))
+  "Face for headers in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-header-value '((t :inherit font-lock-variable-name-face))
+  "Face for header values in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-directory '((t :inherit font-lock-comment-delimiter-face))
+  "Face for directories in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-file '((t :inherit font-lock-function-name-face))
+  "Face for files in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-mark-indicator '((t :inherit font-lock-type-face))
+  "Face for mark indicators in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-status-warning '((t :inherit font-lock-warning-face))
+  "Face for warning status in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-status-edited '((t :inherit font-lock-variable-name-face))
+  "Face for edited status in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-status-up-to-date '((t :inherit font-lock-builtin-face))
+  "Face for up-to-date status in VC-dir buffers."
+  :group 'vc)
+
+(defface vc-dir-ignored '((t :inherit shadow))
+  "Face for ignored or empty values in VC-dir buffers."
+  :group 'vc)
+
 ;; Used to store information for the files displayed in the directory buffer.
 ;; Each item displayed corresponds to one of these defstructs.
 (cl-defstruct (vc-dir-fileinfo
@@ -1126,11 +1162,11 @@ It calls the `dir-extra-headers' backend method to 
display backend
 specific headers."
   (concat
    ;; First layout the common headers.
-   (propertize "VC backend : " 'face 'font-lock-type-face)
-   (propertize (format "%s\n" backend) 'face 'font-lock-variable-name-face)
-   (propertize "Working dir: " 'face 'font-lock-type-face)
+   (propertize "VC backend : " 'face 'vc-dir-header)
+   (propertize (format "%s\n" backend) 'face 'vc-dir-header-value)
+   (propertize "Working dir: " 'face 'vc-dir-header)
    (propertize (format "%s\n" (abbreviate-file-name dir))
-               'face 'font-lock-variable-name-face)
+               'face 'vc-dir-header-value)
    ;; Then the backend specific ones.
    (vc-call-backend backend 'dir-extra-headers dir)
    "\n"))
@@ -1386,9 +1422,9 @@ These are the commands available for use in the file 
status buffer:
   ;; backend specific headers.
   ;; XXX: change this to return nil before the release.
   (concat
-   (propertize "Extra      : " 'face 'font-lock-type-face)
+   (propertize "Extra      : " 'face 'vc-dir-header)
    (propertize "Please add backend specific headers here.  It's easy!"
-              'face 'font-lock-warning-face)))
+              'face 'vc-dir-status-warning)))
 
 (defvar vc-dir-status-mouse-map
   (let ((map (make-sparse-keymap)))
@@ -1414,21 +1450,21 @@ These are the commands available for use in the file 
status buffer:
     (insert
      (propertize
       (format "%c" (if (vc-dir-fileinfo->marked fileentry) ?* ? ))
-      'face 'font-lock-type-face)
+      'face 'vc-dir-mark-indicator)
      "   "
      (propertize
       (format "%-20s" state)
-      'face (cond ((eq state 'up-to-date) 'font-lock-builtin-face)
-                 ((memq state '(missing conflict)) 'font-lock-warning-face)
+      'face (cond ((eq state 'up-to-date) 'vc-dir-status-up-to-date)
+                 ((memq state '(missing conflict)) 'vc-dir-status-warning)
                  ((eq state 'edited) 'font-lock-constant-face)
-                 (t 'font-lock-variable-name-face))
+                 (t 'vc-dir-header-value))
       'mouse-face 'highlight
       'keymap vc-dir-status-mouse-map)
      " "
      (propertize
       (format "%s" filename)
       'face
-      (if isdir 'font-lock-comment-delimiter-face 
'font-lock-function-name-face)
+      (if isdir 'vc-dir-directory 'vc-dir-file)
       'help-echo
       (if isdir
          "Directory\nVC operations can be applied to it\nmouse-3: Pop-up menu"
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index d00c2c2..e730638 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -462,7 +462,7 @@ or an empty string if none."
            (eq 0 (logand ?\111 (logxor old-perm new-perm))))
        "  "
      (if (eq 0 (logand ?\111 old-perm)) "+x" "-x"))
-  'face 'font-lock-type-face))
+  'face 'vc-dir-header))
 
 (defun vc-git-dir-printer (info)
   "Pretty-printer for the vc-dir-fileinfo structure."
@@ -474,20 +474,20 @@ or an empty string if none."
     (insert
      "  "
      (propertize (format "%c" (if (vc-dir-fileinfo->marked info) ?* ? ))
-                 'face 'font-lock-type-face)
+                 'face 'vc-dir-mark-indicator)
      "  "
      (propertize
       (format "%-12s" state)
-      'face (cond ((eq state 'up-to-date) 'font-lock-builtin-face)
-                  ((eq state '(missing conflict)) 'font-lock-warning-face)
-                  (t 'font-lock-variable-name-face))
+      'face (cond ((eq state 'up-to-date) 'vc-dir-status-up-to-date)
+                  ((eq state '(missing conflict)) 'vc-dir-status-warning)
+                  (t 'vc-dir-status-edited))
       'mouse-face 'highlight
       'keymap vc-dir-status-mouse-map)
      "  " (vc-git-permissions-as-string old-perm new-perm)
      "    "
      (propertize (vc-git-escape-file-name (vc-dir-fileinfo->name info))
-                 'face (if isdir 'font-lock-comment-delimiter-face
-                         'font-lock-function-name-face)
+                 'face (if isdir 'vc-dir-directory
+                         'vc-dir-file)
                 'help-echo
                 (if isdir
                     "Directory\nVC operations can be applied to it\nmouse-3: 
Pop-up menu"
@@ -784,7 +784,7 @@ or an empty string if none."
                   (mapconcat
                    (lambda (x)
                      (propertize x
-                                 'face 'font-lock-variable-name-face
+                                 'face 'vc-dir-header-value
                                  'mouse-face 'highlight
                                  'vc-git-hideable all-hideable
                                  'help-echo vc-git-stash-list-help
@@ -800,7 +800,7 @@ or an empty string if none."
                   (mapconcat
                    (lambda (x)
                      (propertize x
-                                 'face 'font-lock-variable-name-face
+                                 'face 'vc-dir-header-value
                                  'mouse-face 'highlight
                                  'invisible t
                                  'vc-git-hideable t
@@ -810,33 +810,32 @@ or an empty string if none."
                    (propertize "\n"
                                'invisible t
                                'vc-git-hideable t))))))))
-    ;; FIXME: maybe use a different face when nothing is stashed.
     (concat
-     (propertize "Branch     : " 'face 'font-lock-type-face)
+     (propertize "Branch     : " 'face 'vc-dir-header)
      (propertize branch
-                'face 'font-lock-variable-name-face)
+                'face 'vc-dir-header-value)
      (when remote-url
        (concat
        "\n"
-       (propertize "Remote     : " 'face 'font-lock-type-face)
+       (propertize "Remote     : " 'face 'vc-dir-header)
        (propertize remote-url
-                   'face 'font-lock-variable-name-face)))
+                   'face 'vc-dir-header-value)))
      ;; For now just a heading, key bindings can be added later for various 
bisect actions
      (when (file-exists-p (expand-file-name ".git/BISECT_START" (vc-git-root 
dir)))
-       (propertize  "\nBisect     : in progress" 'face 
'font-lock-warning-face))
+       (propertize  "\nBisect     : in progress" 'face 'vc-dir-status-warning))
      (when (file-exists-p (expand-file-name ".git/rebase-apply" (vc-git-root 
dir)))
-       (propertize  "\nRebase     : in progress" 'face 
'font-lock-warning-face))
+       (propertize  "\nRebase     : in progress" 'face 'vc-dir-status-warning))
      (if stash-list
          (concat
-          (propertize "\nStash      : " 'face 'font-lock-type-face)
+          (propertize "\nStash      : " 'face 'vc-dir-header)
           stash-button
           stash-string)
        (concat
-       (propertize "\nStash      : " 'face 'font-lock-type-face)
+       (propertize "\nStash      : " 'face 'vc-dir-header)
        (propertize "Nothing stashed"
                    'help-echo vc-git-stash-shared-help
                     'keymap vc-git-stash-shared-map
-                   'face 'font-lock-variable-name-face))))))
+                   'face 'vc-dir-ignored))))))
 
 (defun vc-git-branches ()
   "Return the existing branches, as a list of strings.



reply via email to

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