doomemacs/core/defuns/defuns-neotree.el

72 lines
2.7 KiB
EmacsLisp
Raw Normal View History

2015-06-15 09:05:52 +02:00
;;; defuns-neotree.el
;; for ../core-project.el
;;;###autoload
2016-05-20 22:37:30 -04:00
(defun doom/neotree ()
2015-12-23 03:47:31 -05:00
"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-05-20 22:37:30 -04:00
(let ((project-root (doom/project-root)))
(unless (and (neo-global--window-exists-p)
(f-same? (neo-global--with-buffer 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
;;;###autoload
2016-05-20 22:37:30 -04:00
(defmacro doom/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-05-20 22:37:30 -04:00
(defun doom|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)))
;;;###autoload
2016-05-20 22:37:30 -04:00
(defun doom*save-neotree (orig-fun &rest args)
"Prevents messing up the neotree buffer on window changes"
2016-05-20 22:37:30 -04:00
(doom/neotree-save (apply orig-fun args)))
;;;###autoload
2016-05-20 22:37:30 -04:00
(defun doom*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 doom*neo-insert-root-entry (node)
"Pretty-print pwd in neotree"
(list (concat "" (projectile-project-name))))
;;;###autoload
(defun doom*neo-insert-fold-symbol (name)
"Custom hybrid unicode theme with leading whitespace."
2016-08-16 09:01:00 +02:00
(or (and (eq name 'open)
(neo-buffer--insert-with-face (format " - %s "
(propertize ""
'face `(:family "fontawesome" :height 1.2)
'display '(raise -0.2)))
'neo-expand-btn-face))
(and (eq name 'close)
(neo-buffer--insert-with-face (format " + %s "
(propertize ""
'face `(:family "fontawesome" :height 1.2)
'display '(raise -0.2)))
'neo-expand-btn-face))
(and (eq name 'leaf)
(neo-buffer--insert-with-face " " 'neo-expand-btn-face))))
2015-06-15 09:05:52 +02:00
(provide 'defuns-neotree)
;;; defuns-neotree.el ends here