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

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

[elpa] master 9b91d44 31/92: Implemented colors support for different fi


From: Alexey Veretennikov
Subject: [elpa] master 9b91d44 31/92: Implemented colors support for different files
Date: Thu, 11 Jun 2015 19:47:59 +0000

branch: master
commit 9b91d4491f915b398153da95bb98a189f581e7a8
Author: Alexey Veretennikov <address@hidden>
Commit: Alexey Veretennikov <address@hidden>

    Implemented colors support for different files
---
 ztree-diff.el |   20 ++++++++++++++++++++
 ztree-view.el |   30 ++++++++++++++++++++++--------
 ztree.el      |    3 ++-
 3 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/ztree-diff.el b/ztree-diff.el
index ab433d3..a4439e2 100644
--- a/ztree-diff.el
+++ b/ztree-diff.el
@@ -33,6 +33,25 @@
   "Hidden files regexp. By default all filest starting with dot '.',
 including . and ..")
 
+(defface ztreep-diff-model-diff-face
+  '((t                   (:foreground "red")))
+  "*Face used for different files in Ztree-diff."
+  :group 'Ztree-diff :group 'font-lock-highlighting-faces)
+(defvar ztreep-diff-model-diff-face 'ztreep-diff-model-diff-face)
+
+(defface ztreep-diff-model-add-face
+  '((t                   (:foreground "blue")))
+  "*Face used for added files in Ztree-diff."
+  :group 'Ztree-diff :group 'font-lock-highlighting-faces)
+(defvar ztreep-diff-model-add-face 'ztreep-diff-model-add-face)
+
+(defun ztree-diff-model-face (node)
+  (let ((diff (ztree-diff-model-differet node)))
+    (cond ((eq diff 'diff) ztreep-diff-model-diff-face)
+          ((eq diff 'new)  ztreep-diff-model-add-face)
+          (t nil))))
+
+
 (defun ztree-diff-insert-buffer-header ()
   (insert "Differences tree")
   (newline)
@@ -53,6 +72,7 @@ including . and ..")
                 'ztree-diff-model-is-directory
                 'equal
                 'ztree-diff-model-children
+                'ztree-diff-model-face
                 'ztree-diff-model-side)))
 
 
diff --git a/ztree-view.el b/ztree-view.el
index 2efce4f..51181df 100644
--- a/ztree-view.el
+++ b/ztree-view.el
@@ -119,6 +119,10 @@ If not defined(by default) - using single screen tree, 
otherwise
 the buffer is split to 2 trees")
 (make-variable-buffer-local 'ztree-node-side-fun)
 
+(defun ztree-node-face-fun nil
+  "Function returning face for the node")
+(make-variable-buffer-local 'ztree-node-face-fun)
+
 
 ;;
 ;; Major mode definitions
@@ -163,14 +167,14 @@ the buffer is split to 2 trees")
 
 (defface ztreep-arrow-face
   '((((background dark)) (:foreground "#7f7f7f"))
-    (t                   (:inherit 'font-lock-comment-face)))
+    (t                   (:foreground "#8d8d8d")))
   "*Face used for arrows in Ztree buffer."
   :group 'Ztree :group 'font-lock-highlighting-faces)
 (defvar ztreep-arrow-face 'ztreep-arrow-face)
 
 (defface ztreep-expand-sign-face
   '((((background dark)) (:foreground "#7f7fff"))
-    (t                   (:inherit 'font-lock-comment-face)))
+    (t                   (:foreground "#8d8d8d")))
   "*Face used for expand sign [+] in Ztree buffer."
   :group 'Ztree :group 'font-lock-highlighting-faces)
 (defvar ztreep-expand-sign-face 'ztreep-expand-sign-face)
@@ -431,16 +435,24 @@ apparently shall not be visible"
               (width (window-width)))
           (when (eq side 'left)  (setq right-short-name ""))
           (when (eq side 'right) (setq short-name ""))
-          (ztree-insert-single-entry short-name depth expandable expanded 0)
-          (ztree-insert-single-entry right-short-name depth expandable expanded
-                                     (1+ (/ width 2)))
+          (ztree-insert-single-entry short-name depth
+                                     expandable expanded 0
+                                     (when ztree-node-face-fun
+                                       (funcall ztree-node-face-fun node)))
+          (ztree-insert-single-entry right-short-name depth
+                                     expandable expanded (1+ (/ width 2))
+                                     (when ztree-node-face-fun
+                                       (funcall ztree-node-face-fun node)))
           (puthash line side ztree-line-tree-properties))
       (ztree-insert-single-entry short-name depth expandable expanded 0))
       (push (cons node line) ztree-node-to-line-list)    
     (newline)
     line))
 
-(defun ztree-insert-single-entry (short-name depth expandable expanded offset)
+(defun ztree-insert-single-entry (short-name depth
+                                             expandable expanded
+                                             offset
+                                             &optional face)
   (let ((node-sign #'(lambda (exp)    
                        (insert "[" (if exp "-" "+") "]")
                        (set-text-properties (- (point) 3)
@@ -458,12 +470,12 @@ apparently shall not be visible"
             (funcall node-sign expanded)   ; for expandable nodes insert 
"[+/-]"
             (insert " ")
             (put-text-property 0 (length short-name)
-                               'face 'ztreep-node-face short-name)
+                               'face (if face face 'ztreep-node-face) 
short-name)
             (insert short-name))
         (progn
           (insert "    ")
           (put-text-property 0 (length short-name)
-                             'face 'ztreep-leaf-face short-name)
+                             'face (if face face 'ztreep-leaf-face) short-name)
           (insert short-name))))))
 
 
@@ -496,6 +508,7 @@ apparently shall not be visible"
                    expandable-p
                    equal-fun
                    children-fun
+                   face-fun
                    &optional node-side-fun
                    )
   (let ((buf (get-buffer-create buffer-name)))
@@ -510,6 +523,7 @@ apparently shall not be visible"
     (setq ztree-node-is-expandable-fun expandable-p)
     (setq ztree-node-equal-fun equal-fun)
     (setq ztree-node-contents-fun children-fun)
+    (setq ztree-node-face-fun face-fun)
     (setq ztree-node-side-fun node-side-fun)
     (ztree-refresh-buffer)))
 
diff --git a/ztree.el b/ztree.el
index b1ae489..1a4bf93 100644
--- a/ztree.el
+++ b/ztree.el
@@ -83,7 +83,8 @@ including . and ..")
                   'file-short-name
                   'file-directory-p
                   'string-equal
-                  '(lambda (x) (directory-files x 'full))))))
+                  '(lambda (x) (directory-files x 'full))
+                  nil))))
 
 
 (provide 'ztree)



reply via email to

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