From b679a864528925106a7a07d75a9de9b66adfde41 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 16 May 2017 17:39:42 +0200 Subject: [PATCH] feature/evil: improve neotree popup integration --- core/core-popups.el | 12 +++++++++++- modules/ui/doom/config.el | 9 ++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/core/core-popups.el b/core/core-popups.el index 7a17de388..a64f8da2f 100644 --- a/core/core-popups.el +++ b/core/core-popups.el @@ -411,7 +411,17 @@ the command buffer." (set! :popup " *NeoTree*" :align 'left :size 25) (defun +evil-neotree-display-fn (buf _alist) - (doom-popup-buffer buf))) + "Hand neotree off to shackle." + (let ((win (doom-popup-buffer buf))) + (setq neo-global--buffer (window-buffer win) + neo-global--window win))) + + (defun +evil|neotree-fix-popup () + "Repair neotree state whenever its popup state is restored. This ensures +that `doom*popup-save' won't break it." + (when (equal (buffer-name) neo-buffer-name) + (setq neo-global--window (selected-window)))) + (add-hook 'doom-popup-mode-hook #'+evil|neotree-fix-popup)) (after! quickrun diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index a137fa38b..eb1dc93ed 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -83,7 +83,14 @@ mu4e-view-mode org-tree-slide-mode +regex-mode) - #'doom-buffer-mode)) + #'doom-buffer-mode) + + (after! neotree + (defun +doom|neotree-fix-popup () + "Ensure the fringe settings are maintained on popup restore." + (neo-global--when-window + (doom--neotree-no-fringes))) + (add-hook 'doom-popup-mode-hook #'+doom|neotree-fix-popup nil t))) ;; Flashes the line around the cursor after any motion command that might