diff --git a/Cask b/Cask index 8cdbd7cc5..f76d821d1 100644 --- a/Cask +++ b/Cask @@ -28,6 +28,7 @@ ;; UI --- core/core-ui.el (depends-on "visual-fill-column") (depends-on "highlight-indentation" :git "https://github.com/localredhead/Highlight-Indentation-for-Emacs") +(depends-on "imenu-list") (depends-on "rainbow-delimiters") (depends-on "rainbow-mode") (depends-on "nlinum") diff --git a/core/core-ui.el b/core/core-ui.el index c87a32566..b8ff28c22 100644 --- a/core/core-ui.el +++ b/core/core-ui.el @@ -163,6 +163,19 @@ (remove-hook 'after-save-hook 'narf/add-whitespace t))) (add-hook 'before-save-hook 'delete-trailing-whitespace)) +(use-package imenu-list + :commands (imenu-list-minor-mode) + :config + (setq imenu-list-mode-line-format nil + imenu-list-position 'right + imenu-list-size 35) + + (map! :map imenu-list-major-mode-map + :n [escape] 'narf/imenu-list-quit + :n "RET" 'imenu-list-goto-entry + :n "SPC" 'imenu-list-display-entry + :n [tab] 'hs-toggle-hiding)) + (use-package rainbow-delimiters :commands rainbow-delimiters-mode :init diff --git a/core/defuns/defuns-ui.el b/core/defuns/defuns-ui.el index 166c7910f..2776a0ae0 100644 --- a/core/defuns/defuns-ui.el +++ b/core/defuns/defuns-ui.el @@ -76,5 +76,14 @@ (set-buffer-modified-p nil) nil) +;;;###autoload +(defun narf/imenu-list-quit () + (interactive) + (quit-window) + (mapc (lambda (b) (with-current-buffer b + (when imenu-list-minor-mode + (imenu-list-minor-mode -1)))) + (narf/get-visible-buffers (narf/get-real-buffers)))) + (provide 'defuns-ui) ;;; defuns-ui.el ends here diff --git a/private/my-bindings.el b/private/my-bindings.el index 181e8d5de..4d4eb9973 100644 --- a/private/my-bindings.el +++ b/private/my-bindings.el @@ -162,6 +162,7 @@ (:localleader :n "\\" 'narf/neotree + :n "]" 'imenu-list-minor-mode :n "b" 'narf:build :n "R" 'narf:repl :v "R" 'narf:repl-eval