diff options
author | Jesús <heckyel@hyperbola.info> | 2019-01-22 15:45:41 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2019-01-22 15:45:41 -0500 |
commit | ced0fe8f9ef7cd16ade900bb34393c627f6d0c69 (patch) | |
tree | 350d3a0cbb87b12a36c0dc12537c56a75a2668ae /modules/init-neotree.el | |
parent | d0f44d85466d7211d54e30970f29815842ff4180 (diff) | |
download | emacs-personal-ced0fe8f9ef7cd16ade900bb34393c627f6d0c69.tar.lz emacs-personal-ced0fe8f9ef7cd16ade900bb34393c627f6d0c69.tar.xz emacs-personal-ced0fe8f9ef7cd16ade900bb34393c627f6d0c69.zip |
Change directory lisp/ to modules/
FS #2
Diffstat (limited to 'modules/init-neotree.el')
-rw-r--r-- | modules/init-neotree.el | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/modules/init-neotree.el b/modules/init-neotree.el new file mode 100644 index 0000000..ff38aa8 --- /dev/null +++ b/modules/init-neotree.el @@ -0,0 +1,90 @@ +;;; init-neotree.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;----------------------------------- +;; Neotree - NerdTree for Vim +;;----------------------------------- + +(use-package shrink-path + :ensure t) + +(use-package neotree + :ensure t + :commands (neotree-show + neotree-hide + neotree-toggle + neotree-dir + neotree-find + neo-global--with-buffer + neo-global--window-exists-p) + :bind (([f8] . neotree-toggle) + (:map neotree-mode-map + ("<C-return>" . neotree-change-root) + ("C" . neotree-change-root) + ("c" . neotree-create-node) + ("+" . neotree-create-node) + ("d" . neotree-delete-node) + ("r" . neotree-rename-node))) + :config + (setq neo-create-file-auto-open nil + neo-auto-indent-point nil + neo-autorefresh t + neo-smart-open t + neo-mode-line-type 'none + neo-window-width 25 + neo-show-updir-line nil + neo-theme (if (display-graphic-p) 'icons 'arrow) + neo-banner-message nil + neo-confirm-create-file #'off-p + neo-confirm-create-directory #'off-p + neo-show-hidden-files nil + neo-keymap-style 'concise + neo-hidden-regexp-list + '(;; vcs folders + "^\\.\\(git\\|hg\\|svn\\)$" + ;; compiled files + "\\.\\(pyc\\|o\\|elc\\|lock\\|css.map\\)$" + ;; generated files, caches or local pkgs + "^\\(node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$" + ;; org-mode folders + "^\\.\\(sync\\|export\\|attach\\)$" + "~$" + "^#.*#$")) + + (when (bound-and-true-p winner-mode) + (push neo-buffer-name winner-boring-buffers)) + + (defun shrink-root-entry (node) + "shrink-print pwd in neotree" + (insert (propertize (concat (shrink-path-dirs node) "\n") 'face `(:inherit (,neo-root-dir-face))))) + + (advice-add #'neo-buffer--insert-root-entry :override #'shrink-root-entry)) + +(defun neotree-project-dir-toggle () + "Open NeoTree using the project root, using find-file-in-project or the current buffer directory." + (interactive) + (let ((project-dir + (ignore-errors + ;;; Pick one: projectile or find-file-in-project + (projectile-project-root))) + (file-name (buffer-file-name)) + (neo-smart-open t)) + (if (and (fboundp 'neo-global--window-exists-p) + (neo-global--window-exists-p)) + (neotree-hide) + (progn + (neotree-show) + (if project-dir + (neotree-dir project-dir)) + (if file-name + (neotree-find file-name)))))) + + +(provide 'init-neotree) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-neotree.el ends here |