aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--custom.el2
-rw-r--r--lisp/init-neotree.el92
2 files changed, 84 insertions, 10 deletions
diff --git a/custom.el b/custom.el
index 0dc861f..872dbf0 100644
--- a/custom.el
+++ b/custom.el
@@ -11,7 +11,7 @@
'(ecb-options-version "2.50")
'(package-selected-packages
(quote
- (git-gutter-fringe git-timemachine gitattributes-mode gitignore-mode gitconfig-mode yaml-mode whitespace-cleanup-mode web-mode use-package undo-tree sublime-themes sml-modeline smart-mode-line-powerline-theme scss-mode sass-mode rainbow-mode pkgbuild-mode pip-requirements php-refactor-mode nlinum nginx-mode neotree markdown-mode less-css-mode jedi highlight-indent-guides flycheck emmet-mode ecb dokuwiki-mode diminish crystal-mode company-php anzu all-the-icons))))
+ (shrink-path git-gutter-fringe git-timemachine gitattributes-mode gitignore-mode gitconfig-mode yaml-mode whitespace-cleanup-mode web-mode use-package undo-tree sublime-themes sml-modeline smart-mode-line-powerline-theme scss-mode sass-mode rainbow-mode pkgbuild-mode pip-requirements php-refactor-mode nlinum nginx-mode neotree markdown-mode less-css-mode jedi highlight-indent-guides flycheck emmet-mode ecb dokuwiki-mode diminish crystal-mode company-php anzu all-the-icons))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
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