2015-06-15 09:05:52 +02:00
|
|
|
;;; defuns-neotree.el
|
|
|
|
;; for ../core-project.el
|
|
|
|
|
|
|
|
;;;###autoload
|
2015-12-23 03:47:31 -05:00
|
|
|
(defun narf/neotree ()
|
|
|
|
"Toggle the neotree window"
|
2015-06-15 09:05:52 +02:00
|
|
|
(interactive)
|
2015-12-23 03:47:31 -05:00
|
|
|
(let ((in-neotree (and (neo-global--window-exists-p)
|
|
|
|
(window-live-p neo-global--buffer)
|
2016-03-12 00:46:22 -05:00
|
|
|
(eq (current-buffer) neo-global--buffer)))
|
|
|
|
(path buffer-file-name))
|
2015-12-23 03:47:31 -05:00
|
|
|
(if in-neotree
|
|
|
|
(neotree-hide)
|
2016-02-17 20:06:10 -05:00
|
|
|
(let ((project-root (narf/project-root)))
|
|
|
|
(unless (and (neo-global--window-exists-p)
|
|
|
|
(f-same? (neo-global--with-window neo-buffer--start-node) project-root))
|
2016-03-12 00:46:22 -05:00
|
|
|
(neotree-dir project-root))
|
|
|
|
(neotree-find path project-root)))))
|
2015-06-15 09:05:52 +02:00
|
|
|
|
2016-04-27 23:20:02 -04:00
|
|
|
;;;###autoload
|
|
|
|
(defmacro narf/neotree-save (&rest body)
|
|
|
|
`(let ((neo-p (neo-global--window-exists-p)))
|
|
|
|
(when neo-p (neotree-hide))
|
|
|
|
,@body
|
|
|
|
(when neo-p
|
|
|
|
(save-selected-window
|
|
|
|
(neotree-show)))))
|
|
|
|
|
2015-06-15 09:05:52 +02:00
|
|
|
;;;###autoload
|
2016-03-03 15:04:14 -05:00
|
|
|
(defun narf|neotree-close-on-window-change (&rest _)
|
2015-06-15 09:05:52 +02:00
|
|
|
"Close neotree to prevent ensuing mindow buggery."
|
|
|
|
(unless (and (neo-global--window-exists-p)
|
|
|
|
(eq (current-buffer) (neo-global--get-buffer)))
|
|
|
|
(neotree-hide)))
|
|
|
|
|
2016-05-12 02:54:15 -04:00
|
|
|
;;;###autoload
|
|
|
|
(defun narf*save-neotree (orig-fun &rest args)
|
|
|
|
"Prevents messing up the neotree buffer on window changes"
|
|
|
|
(narf/neotree-save (apply orig-fun args)))
|
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun narf*neotree-create-node (orig-fun &rest args)
|
|
|
|
"Don't ask for confirmation when creating files"
|
|
|
|
(cl-letf (((symbol-function 'yes-or-no-p) (lambda (&rest _) t)))
|
|
|
|
(apply orig-fun args)))
|
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun narf*neotree-shorten-pwd (node)
|
|
|
|
"Shorter pwd in neotree"
|
2016-05-20 17:22:52 -04:00
|
|
|
(list (concat " " (projectile-project-name))))
|
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun narf*neo-theme (name)
|
|
|
|
"Custom hybrid ascii theme with leading whitespace."
|
|
|
|
(let ((n-insert-symbol (lambda (n)
|
|
|
|
(neo-buffer--insert-with-face
|
|
|
|
n 'neo-expand-btn-face))))
|
|
|
|
(or (and (eq name 'open) (funcall n-insert-symbol " - "))
|
|
|
|
(and (eq name 'close) (funcall n-insert-symbol " + "))
|
|
|
|
(and (eq name 'leaf) (funcall n-insert-symbol " ")))))
|
2016-05-12 02:54:15 -04:00
|
|
|
|
2015-06-15 09:05:52 +02:00
|
|
|
(provide 'defuns-neotree)
|
|
|
|
;;; defuns-neotree.el ends here
|