2017-02-13 04:54:36 -05:00
|
|
|
;;; feature/evil/autoload/neotree.el
|
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun +evil/neotree ()
|
|
|
|
"Toggle the neotree window."
|
|
|
|
(interactive)
|
|
|
|
(let ((in-neotree (and (neo-global--window-exists-p)
|
|
|
|
(window-live-p neo-global--buffer)
|
|
|
|
(eq (current-buffer) neo-global--buffer)))
|
|
|
|
(path buffer-file-name))
|
|
|
|
(if in-neotree
|
|
|
|
(neotree-hide)
|
|
|
|
(let ((project-root (doom-project-root)))
|
|
|
|
(unless (and (neo-global--window-exists-p)
|
2017-02-19 18:14:46 -05:00
|
|
|
(equal (file-truename (neo-global--with-buffer neo-buffer--start-node))
|
|
|
|
(file-truename project-root)))
|
2017-02-13 04:54:36 -05:00
|
|
|
(neotree-dir project-root))
|
|
|
|
(neotree-find path project-root)))))
|
|
|
|
|
2017-05-06 12:12:04 -04:00
|
|
|
;;;###autoload
|
|
|
|
(defun +evil/neotree-collapse-or-up ()
|
|
|
|
"Collapse an expanded directory node or go to the parent node."
|
|
|
|
(interactive)
|
2017-05-17 01:32:39 +02:00
|
|
|
(when-let (node (neo-buffer--get-filename-current-line))
|
|
|
|
(if (file-directory-p node)
|
|
|
|
(if (neo-buffer--expanded-node-p node)
|
|
|
|
(+evil/neotree-collapse)
|
|
|
|
(neotree-select-up-node))
|
|
|
|
(neotree-select-up-node))))
|
2017-05-06 12:12:04 -04:00
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun +evil/neotree-collapse ()
|
|
|
|
"Collapse a neotree node."
|
|
|
|
(interactive)
|
2017-05-17 01:32:39 +02:00
|
|
|
(when-let (node (neo-buffer--get-filename-current-line))
|
|
|
|
(when (file-directory-p node)
|
|
|
|
(neo-buffer--set-expand node nil)
|
|
|
|
(neo-buffer--refresh t))
|
|
|
|
(when neo-auto-indent-point
|
|
|
|
(neo-point-auto-indent))))
|
2017-05-06 12:12:04 -04:00
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun +evil/neotree-expand-or-open ()
|
|
|
|
"Expand or open a neotree node."
|
|
|
|
(interactive)
|
2017-05-17 01:32:39 +02:00
|
|
|
(when-let (node (neo-buffer--get-filename-current-line))
|
|
|
|
(if (file-directory-p node)
|
|
|
|
(progn
|
|
|
|
(neo-buffer--set-expand node t)
|
|
|
|
(neo-buffer--refresh t)
|
|
|
|
(when neo-auto-indent-point
|
2017-05-26 23:29:35 +02:00
|
|
|
(forward-line)
|
2017-05-17 01:32:39 +02:00
|
|
|
(neo-point-auto-indent)))
|
|
|
|
(call-interactively 'neotree-enter))))
|