branch: master commit f9620dfd5802915f42e5770ee054e75c31122a9d Author: Alexey Veretennikov <alexey.veretenni...@gmail.com> Commit: Alexey Veretennikov <alexey.veretenni...@gmail.com>
Added action on modified files --- ztree-diff.el | 7 +++++++ ztree-view.el | 9 ++++++++- ztree.el | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ztree-diff.el b/ztree-diff.el index 84f7b37..0c44ad9 100644 --- a/ztree-diff.el +++ b/ztree-diff.el @@ -91,6 +91,12 @@ including . and ..") (insert-with-face "==============" ztreep-diff-header-face) (newline)) +(defun ztree-diff-model-action (node) + (let ((left (ztree-diff-model-get-left-path node)) + (right (ztree-diff-model-get-right-path node))) + (when (and left right) + (ediff left right)))) + (defun ztree-diff (dir1 dir2) "Creates an interactive buffer with the directory tree of the path given" (interactive "DLeft directory \nDRight directory ") @@ -105,6 +111,7 @@ including . and ..") 'equal 'ztree-diff-model-children 'ztree-diff-model-face + 'ztree-diff-model-action 'ztree-diff-model-side))) diff --git a/ztree-view.el b/ztree-view.el index b3a5318..b83ea8b 100644 --- a/ztree-view.el +++ b/ztree-view.el @@ -123,6 +123,10 @@ the buffer is split to 2 trees") "Function returning face for the node") (make-variable-buffer-local 'ztree-node-face-fun) +(defun ztree-node-action-fun nil + "Function called when Enter/Space pressed on the node") +(make-variable-buffer-local 'ztree-node-action-fun) + ;; ;; Major mode definitions @@ -214,7 +218,8 @@ node for the line specified" ;; only for expandable nodes (ztree-toggle-expand-state node) ;; do nothing leafs files for now - nil) + (when ztree-node-action-fun + (funcall ztree-node-action-fun node))) ;; save the current window start position (let ((current-pos (window-start))) ;; refresh buffer and scroll back to the saved line @@ -496,6 +501,7 @@ apparently shall not be visible" equal-fun children-fun face-fun + action-fun &optional node-side-fun ) (let ((buf (get-buffer-create buffer-name))) @@ -511,6 +517,7 @@ apparently shall not be visible" (setq ztree-node-equal-fun equal-fun) (setq ztree-node-contents-fun children-fun) (setq ztree-node-face-fun face-fun) + (setq ztree-node-action-fun action-fun) (setq ztree-node-side-fun node-side-fun) (ztree-refresh-buffer))) diff --git a/ztree.el b/ztree.el index f79c2c0..26f2ab2 100644 --- a/ztree.el +++ b/ztree.el @@ -99,7 +99,8 @@ including . and ..") 'file-directory-p 'string-equal '(lambda (x) (directory-files x 'full)) - nil)))) + nil ; face + nil)))) ; action (provide 'ztree)