@@ -46,7 +46,7 @@
(setq-default dumb-jump-use-visible-window t
dumb-jump-prefer-searcher 'rg))
-(use-package
+(use-package imenu
:config
(setq-default imenu-use-markers t
imenu-auto-rescan t
@@ -57,12 +57,24 @@
imenu-space-replacement " "
imenu-level-separator "/")
+ (defun prot/imenu-vertical ()
+ "Use a vertical Icomplete layout for `imenu'.
+Also configure the value of `orderless-matching-styles' to avoid
+aggressive fuzzy-style matching for this particular command."
+ (interactive)
+ (let ((orderless-matching-styles ; make sure to check `orderless'
+ '(orderless-literal
+ orderless-regexp
+ orderless-prefixes)))
+ (icomplete-vertical-do (:height (/ (frame-height) 4))
+ (call-interactively 'imenu))))
+
:hook ((imenu-after-jump-hook . (lambda ()
(when (and (eq major-mode 'org-mode)
(org-at-heading-p))
(org-show-entry)
(org-reveal t)))))
- :bind ("C-'" . imenu))
+ :bind ("C-'" . prot/imenu-vertical))
(use-package flimenu
:config