doomemacs/modules/ui/neotree/config.el
Henrik Lissner d8b1e469bc
Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00

58 lines
2.0 KiB
EmacsLisp

;;; ui/neotree/config.el -*- lexical-binding: t; -*-
(def-package! neotree
:commands (neotree-show
neotree-hide
neotree-toggle
neotree-dir
neotree-find
neo-global--with-buffer
neo-global--window-exists-p)
:config
(setq neo-create-file-auto-open nil
neo-auto-indent-point nil
neo-autorefresh nil
neo-mode-line-type 'none
neo-window-width 28
neo-show-updir-line nil
neo-theme 'nerd ; fallback
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-show-hidden-files t
neo-hidden-regexp-list
'(;; vcs folders
"^\\.\\(?:git\\|hg\\|svn\\)$"
;; compiled files
"\\.\\(?:pyc\\|o\\|elc\\|lock\\|css.map\\|class\\)$"
;; generated files, caches or local pkgs
"^\\(?:node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$"
;; org-mode folders
"^\\.\\(?:sync\\|export\\|attach\\)$"
;; temp files
"~$"
"^#.*#$"))
(set-popup-rule! "^ ?\\*NeoTree"
`((side . ,neo-window-position) (size . ,neo-window-width))
'((quit . current) (select . t)))
(after! winner
(cl-pushnew neo-buffer-name winner-boring-buffers))
;; The cursor always sits at bol. `+neotree*fix-cursor' and
;; `+neotree*indent-cursor' change that behavior, so that the cursor is always
;; on the first non-blank character on the line, in the neo buffer.
(defun +neotree*fix-cursor (&rest _)
(with-current-buffer neo-global--buffer
(+neotree*indent-cursor)))
(add-hook 'neo-enter-hook #'+neotree*fix-cursor)
(defun +neotree*indent-cursor (&rest _)
(beginning-of-line)
(skip-chars-forward " \t\r"))
(advice-add #'neotree-next-line :after #'+neotree*indent-cursor)
(advice-add #'neotree-previous-line :after #'+neotree*indent-cursor))