diff options
author | Jesús <heckyel@hyperbola.info> | 2019-01-21 16:05:28 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2019-01-21 16:05:28 -0500 |
commit | 1840f5a9b14e92be5c4ffaa7a2722532f22bd5dd (patch) | |
tree | 26144fce5f70c3e3e9153a64a203f93c034ccb0c /lisp | |
parent | e8af74bbfc57dc3edf270d4daf097479064672ab (diff) | |
download | emacs-personal-1840f5a9b14e92be5c4ffaa7a2722532f22bd5dd.tar.lz emacs-personal-1840f5a9b14e92be5c4ffaa7a2722532f22bd5dd.tar.xz emacs-personal-1840f5a9b14e92be5c4ffaa7a2722532f22bd5dd.zip |
fix neotree don't update the generated files FS#3
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/init-neotree.el | 92 |
1 files changed, 83 insertions, 9 deletions
diff --git a/lisp/init-neotree.el b/lisp/init-neotree.el index b3be5f5..ff38aa8 100644 --- a/lisp/init-neotree.el +++ b/lisp/init-neotree.el @@ -1,16 +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 - (global-set-key [f8] 'neotree-toggle) - ;;----------------------- - ;; neo-smart-open - ;;----------------------- - ;;(setq neo-smart-open t) - ;;--------------------------------------------------------- - ;; Custom icons - Require of all-the-icons - ;;--------------------------------------------------------- - (setq neo-theme (if (display-graphic-p) 'icons 'arrow))) + (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 |