branch: master commit 7c49485006e61da818ddb5e8a48dc2f0381063f9 Author: Alexey Veretennikov <txm.four...@gmail.com> Commit: Alexey Veretennikov <txm.four...@gmail.com>
Set all functions to have ztree- prefix --- ztree-diff-model.el | 26 +++++++++++++------------- ztree-diff.el | 38 +++++++++++++++++++------------------- ztree-dir.el | 8 ++++---- ztree-util.el | 27 +++++++++++++-------------- ztree-view.el | 12 ++++++------ 5 files changed, 55 insertions(+), 56 deletions(-) diff --git a/ztree-diff-model.el b/ztree-diff-model.el index 54a9615..ed459f2 100644 --- a/ztree-diff-model.el +++ b/ztree-diff-model.el @@ -45,7 +45,7 @@ -;; Create a record ztree-diff-node with defined fielsd and getters/setters +;; Create a record ztree-diff-node with defined fields and getters/setters ;; here: ;; parent - parent node ;; left-path is the full path on the left side of the diff window, @@ -53,7 +53,7 @@ ;; short-name - is the file or directory name ;; children - list of nodes - files or directories if the node is a directory ;; different = {nil, 'new, 'diff} - means comparison status -(defrecord ztree-diff-node (parent left-path right-path short-name right-short-name children different)) +(ztree-defrecord ztree-diff-node (parent left-path right-path short-name right-short-name children different)) (defun ztree-diff-node-to-string (node) "Construct the string with contents of the NODE given." @@ -139,7 +139,7 @@ Returns t if equal." (defun ztree-directory-files (dir) "Return the list of full paths of files in a directory DIR. Filters out . and .." - (ztree-filter #'(lambda (file) (let ((simple-name (file-short-name file))) + (ztree-filter #'(lambda (file) (let ((simple-name (ztree-file-short-name file))) (not (or (string-equal simple-name ".") (string-equal simple-name ".."))))) (directory-files dir 'full))) @@ -181,8 +181,8 @@ Argument SIDE either 'left or 'right side." parent (when (eq side 'left) file) (when (eq side 'right) file) - (file-short-name file) - (file-short-name file) + (ztree-file-short-name file) + (ztree-file-short-name file) nil 'new)) (children (ztree-diff-model-subtree node file side))) @@ -192,8 +192,8 @@ Argument SIDE either 'left or 'right side." parent (when (eq side 'left) file) (when (eq side 'right) file) - (file-short-name file) - (file-short-name file) + (ztree-file-short-name file) + (ztree-file-short-name file) nil 'new) result))) @@ -240,7 +240,7 @@ the rest is the combined list of nodes." (dolist (file1 list1) ;; for every entry in the first directory ;; we are creating the node - (let* ((simple-name (file-short-name file1)) + (let* ((simple-name (ztree-file-short-name file1)) (isdir (file-directory-p file1)) (children nil) (different nil) @@ -250,7 +250,7 @@ the rest is the combined list of nodes." ;; 1. find if the file is in the second directory and the type ;; is the same - i.e. both are directories or both are files (file2 (ztree-find list2 - #'(lambda (x) (and (string-equal (file-short-name x) + #'(lambda (x) (and (string-equal (ztree-file-short-name x) simple-name) (eq isdir (file-directory-p x))))))) ;; 2. if it is not in the second directory, add it as a node @@ -287,7 +287,7 @@ the rest is the combined list of nodes." (dolist (file2 list2) ;; for every entry in the second directory ;; we are creating the node - (let* ((simple-name (file-short-name file2)) + (let* ((simple-name (ztree-file-short-name file2)) (isdir (file-directory-p file2)) (children nil) ;; create the node to be added to the results list @@ -295,7 +295,7 @@ the rest is the combined list of nodes." ;; 1. find if the file is in the first directory and the type ;; is the same - i.e. both are directories or both are files (file1 (ztree-find list1 - #'(lambda (x) (and (string-equal (file-short-name x) + #'(lambda (x) (and (string-equal (ztree-file-short-name x) simple-name) (eq isdir (file-directory-p x))))))) ;; if it is not in the first directory, add it as a node @@ -321,8 +321,8 @@ the rest is the combined list of nodes." (setq ztree-diff-model-wait-message (concat "Comparing " dir1 " and " dir2 " ...")) (let* ((model (ztree-diff-node-create nil dir1 dir2 - (file-short-name dir1) - (file-short-name dir2) + (ztree-file-short-name dir1) + (ztree-file-short-name dir2) nil nil)) (traverse (ztree-diff-node-traverse model dir1 dir2))) diff --git a/ztree-diff.el b/ztree-diff.el index 6caa73e..f9eee13 100644 --- a/ztree-diff.el +++ b/ztree-diff.el @@ -110,28 +110,28 @@ By default paths starting with dot (like .git) are ignored") (defun ztree-diff-insert-buffer-header () "Insert the header to the ztree buffer." - (insert-with-face "Differences tree" ztreep-diff-header-face) - (newline-and-begin) + (ztree-insert-with-face "Differences tree" ztreep-diff-header-face) + (insert "\n") (when ztree-diff-dirs-pair - (insert-with-face (concat "Left: " (car ztree-diff-dirs-pair)) + (ztree-insert-with-face (concat "Left: " (car ztree-diff-dirs-pair)) ztreep-diff-header-small-face) - (newline-and-begin) - (insert-with-face (concat "Right: " (cdr ztree-diff-dirs-pair)) + (insert "\n") + (ztree-insert-with-face (concat "Right: " (cdr ztree-diff-dirs-pair)) ztreep-diff-header-small-face) - (newline-and-begin)) - (insert-with-face "Legend:" ztreep-diff-header-small-face) - (newline-and-begin) - (insert-with-face " Normal file " ztreep-diff-model-normal-face) - (insert-with-face "- same on both sides" ztreep-diff-header-small-face) - (newline-and-begin) - (insert-with-face " Orphan file " ztreep-diff-model-add-face) - (insert-with-face "- does not exist on other side" ztreep-diff-header-small-face) - (newline-and-begin) - (insert-with-face " Mismatch file " ztreep-diff-model-diff-face) - (insert-with-face "- different from other side" ztreep-diff-header-small-face) - (newline-and-begin) - (insert-with-face "==============" ztreep-diff-header-face) - (newline-and-begin)) + (insert "\n")) + (ztree-insert-with-face "Legend:" ztreep-diff-header-small-face) + (insert "\n") + (ztree-insert-with-face " Normal file " ztreep-diff-model-normal-face) + (ztree-insert-with-face "- same on both sides" ztreep-diff-header-small-face) + (insert "\n") + (ztree-insert-with-face " Orphan file " ztreep-diff-model-add-face) + (ztree-insert-with-face "- does not exist on other side" ztreep-diff-header-small-face) + (insert "\n") + (ztree-insert-with-face " Mismatch file " ztreep-diff-model-diff-face) + (ztree-insert-with-face "- different from other side" ztreep-diff-header-small-face) + (insert "\n") + (ztree-insert-with-face "==============" ztreep-diff-header-face) + (insert "\n")) (defun ztree-diff-full-rescan () "Force full rescan of the directory trees." diff --git a/ztree-dir.el b/ztree-dir.el index d52aef1..60ad957 100644 --- a/ztree-dir.el +++ b/ztree-dir.el @@ -84,15 +84,15 @@ user press RETURN on file ")t "Insert the header to the ztree buffer." (let ((start (point))) (insert "Directory tree") - (newline-and-begin) + (insert "\n") (insert "==============") (set-text-properties start (point) '(face ztreep-header-face))) - (newline-and-begin)) + (insert "\n")) (defun ztree-file-not-hidden (filename) "Determines if the file with FILENAME should be visible." (not (string-match ztree-hidden-files-regexp - (file-short-name filename)))) + (ztree-file-short-name filename)))) (defun ztree-find-file (node hard) "Find the file at NODE. @@ -117,7 +117,7 @@ Otherwise, the ztree window is used to find the file." (expand-file-name (substitute-in-file-name path)) 'ztree-file-not-hidden 'ztree-insert-buffer-header - 'file-short-name + 'ztree-file-short-name 'file-directory-p 'string-equal '(lambda (x) (directory-files x 'full)) diff --git a/ztree-util.el b/ztree-util.el index 45f297d..28193ac 100644 --- a/ztree-util.el +++ b/ztree-util.el @@ -43,36 +43,30 @@ Taken from http://www.emacswiki.org/emacs/ElispCookbook#toc39" (mapcar (lambda (x) (and (funcall condp x) x)) lst))) -(defun printable-string (string) +(defun ztree-printable-string (string) "Strip newline character from file names, like 'Icon\n. Argument STRING string to process.'." (replace-regexp-in-string "\n" "" string)) -(defun file-short-name (file) +(defun ztree-file-short-name (file) "By given FILE name return base file/directory name. Taken from http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01238.html" - (printable-string (file-name-nondirectory (directory-file-name file)))) + (ztree-printable-string (file-name-nondirectory (directory-file-name file)))) - -(defun newline-and-begin () - "Move a point to the beginning of the next line." - (insert "\n") - (beginning-of-line)) - -(defun car-atom (value) +(defun ztree-car-atom (value) "Return VALUE if value is an atom, otherwise (car value) or nil. Used since `car-safe' returns nil for atoms" (if (atom value) value (car value))) -(defun insert-with-face (text face) +(defun ztree-insert-with-face (text face) "Insert TEXT with the FACE provided." (let ((start (point))) (insert text) (put-text-property start (point) 'face face))) -(defmacro defrecord (record-name record-fields) +(defmacro ztree-defrecord (record-name record-fields) "Create a record (structure) and getters/setters. Record is the following set of functions: @@ -84,7 +78,7 @@ argument - the record; \"field\" is from \"record-fields\" symbols arguments - the record and the field value Example: -\(defrecord person (name age)) +\(ztree-defrecord person (name age)) will be expanded to the following functions: @@ -92,7 +86,12 @@ will be expanded to the following functions: \(defun person-name (record) (...) \(defun person-age (record) (...) \(defun person-set-name (record value) (...) -\(defun person-set-age (record value) (...)" +\(defun person-set-age (record value) (...) + +To test expansion one can use GNU Emacs's pp library: +\(require 'pp) +\(pp-macroexpand-expression + '(ztree-defrecord person (name age)))" (let ((ctor-name (intern (concat (symbol-name record-name) "-create"))) (rec-var (make-symbol "record"))) `(progn diff --git a/ztree-view.el b/ztree-view.el index a251be8..89ae094 100644 --- a/ztree-view.el +++ b/ztree-view.el @@ -412,20 +412,20 @@ Argument START-OFFSET column to start drawing from." ;; from the children list (let ((last-child (ztree-find children #'(lambda (x) - (funcall visible (car-atom x))))) + (funcall visible (ztree-car-atom x))))) (x-offset (+ 2 offset))) (when last-child (ztree-draw-vertical-rounded-line (1+ root) - (car-atom last-child) + (ztree-car-atom last-child) x-offset))) ;; draw recursively (dolist (child children) (ztree-draw-tree child (1+ depth) start-offset) (let ((end (if (listp child) line-end-node line-end-leaf))) - (when (funcall visible (car-atom child)) + (when (funcall visible (ztree-car-atom child)) (ztree-draw-horizontal-line line-start end - (car-atom child))))))))) + (ztree-car-atom child))))))))) (defun ztree-fill-parent-array (tree) "Set the root lines array. @@ -433,7 +433,7 @@ Argument TREE nodes tree to create an array of lines from." (let ((root (car tree)) (children (cdr tree))) (dolist (child children) - (ztree-set-parent-for-line (car-atom child) root) + (ztree-set-parent-for-line (ztree-car-atom child) root) (when (listp child) (ztree-fill-parent-array child))))) @@ -524,7 +524,7 @@ Argument PATH start node." (puthash line side ztree-line-tree-properties)) (ztree-insert-single-entry short-name depth expandable expanded 0)) (puthash line node ztree-line-to-node-table) - (newline-and-begin) + (insert "\n") line)) (defun ztree-insert-single-entry (short-name depth