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

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

[elpa] master 8ba9ca2 55/92: Added simple diff by using SPACE


From: Alexey Veretennikov
Subject: [elpa] master 8ba9ca2 55/92: Added simple diff by using SPACE
Date: Thu, 11 Jun 2015 19:48:09 +0000

branch: master
commit 8ba9ca2b21de196abc3d980e1cf779b0f08053d9
Author: Alexey Veretennikov <address@hidden>
Commit: Alexey Veretennikov <address@hidden>

    Added simple diff by using SPACE
---
 ztree-diff.el |   36 +++++++++++++++++++++---------------
 ztree-view.el |   23 +++++++++++++++++------
 2 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/ztree-diff.el b/ztree-diff.el
index 5b2d5f7..981e9bd 100644
--- a/ztree-diff.el
+++ b/ztree-diff.el
@@ -135,25 +135,29 @@ including . and ..")
     (ztree-diff (car ztree-diff-dirs-pair) (cdr ztree-diff-dirs-pair))))
 
 
+(defun ztree-diff-simple-diff (node)
+  "Create a simple diff buffer for files from left and right panels"
+  (let* ((node-left (ztree-diff-node-left-path node))
+         (node-right (ztree-diff-node-right-path node)))
+    (when (and
+           node-left
+           node-right
+           (not (file-directory-p node-left)))
+      ;; show the diff window on the bottom
+      ;; to not to crush tree appearance
+      (let ((split-width-threshold nil))
+        (diff node-left node-right)))))
+
+
 (defun ztree-diff-simple-diff-files ()
   "Create a simple diff buffer for files from left and right panels"
   (interactive)
   (let ((found (ztree-find-node-at-point)))
     (when found
-      (let* ((node (car found))
-             (node-left (ztree-diff-node-left-path node))
-             (node-right (ztree-diff-node-right-path node)))
-        (when (and
-               node-left
-               node-right
-               (not (file-directory-p node-left)))
-          ;; show the diff window on the bottom
-          ;; to not to crush tree appearance
-          (let ((split-width-threshold nil))
-            (diff node-left node-right)))))))
-
+      (let ((node (car found)))
+        (ztree-diff-simple-diff node)))))
 
-(defun ztree-diff-node-action (node)
+(defun ztree-diff-node-action (node hard)
   (let ((left (ztree-diff-node-left-path node))
         (right (ztree-diff-node-right-path node)))
     (when (and left right)
@@ -162,7 +166,9 @@ including . and ..")
                            (substring-no-properties
                             (ztree-diff-node-short-name node))
                            " on left and right side are identical"))
-        (ediff left right)))))
+        (if hard
+            (ediff left right)
+          (ztree-diff-simple-diff node))))))
 
 
 (defun ztree-diff-copy-file (node source-path destination-path copy-to-right)
diff --git a/ztree-view.el b/ztree-view.el
index c10de77..fecc928 100644
--- a/ztree-view.el
+++ b/ztree-view.el
@@ -135,7 +135,7 @@ the buffer is split to 2 trees")
 (defvar ztree-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map (kbd "\r") 'ztree-perform-action)
-    (define-key map (kbd "SPC") 'ztree-perform-action)
+    (define-key map (kbd "SPC") 'ztree-perform-soft-action)
     (define-key map [double-mouse-1] 'ztree-perform-action)
     (define-key map (kbd "TAB") 'ztree-jump-side)
     (define-key map (kbd "g") 'ztree-refresh-buffer)
@@ -218,24 +218,35 @@ if there is no node"
   (forward-line (1- line)))
 
 
-(defun ztree-perform-action ()
-  "Toggle expand/collapsed state for nodes"
-  (interactive)
+(defun ztree-do-perform-action (hard)
   (let* ((line (line-number-at-pos))
          (node (ztree-find-node-in-line line)))
     (when node
       (if (funcall ztree-node-is-expandable-fun node)
           ;; only for expandable nodes
           (ztree-toggle-expand-state node)
-        ;; do nothing leafs files for now
+        ;; perform action
         (when ztree-node-action-fun
-          (funcall ztree-node-action-fun node)))
+          (funcall ztree-node-action-fun node hard)))
       ;; save the current window start position
       (let ((current-pos (window-start)))
         ;; refresh buffer and scroll back to the saved line
         (ztree-refresh-buffer line)
         ;; restore window start position
         (set-window-start (selected-window) current-pos))))) 
+  
+
+(defun ztree-perform-action ()
+  "Toggle expand/collapsed state for nodes or perform hard action,
+binded on RET, on node"
+  (interactive)
+  (ztree-do-perform-action t))
+
+(defun ztree-perform-soft-action ()
+  "Toggle expand/collapsed state for nodes or perform soft action,
+binded on Space, on node"
+  (interactive)
+  (ztree-do-perform-action nil))
 
 
 (defun ztree-toggle-expand-state (node)



reply via email to

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