이 노트에 대하여

imenu-list를 모드라인과 truncation까지 손보며 더 깔끔한 패널로 만드는 설정을 남긴다. Treemacs 대안 혹은 보완 도구로서 imenu-list를 다듬는 화면 구성 노트다.

BIBLIOGRAPHY

“Junghan0611/Imenu-List.” 2025. https://github.com/junghan0611/imenu-list.

History

스크린샷

일단 보자면 일관성과 모드라인까지

>

아름다우려면 모드라인 - 키바인딩 - 목적까지

[2025-02-28 Fri 11:13]

;;;;; imenu-list
 
;;;;###autoload
(defun my/imenu-list-tuncates-without-tab-line ()
  "Toggle line truncation without printing messages."
  (let ((inhibit-message t))
    (tab-line-mode -1)
    (toggle-truncate-lines t)))
 
;; Show an outline summary of the current buffer.
(use-package! imenu-list
  :custom
  (imenu-list-position 'left) ; why not work?!
  (imenu-list-size 45)
  :init
  (setq imenu-list-focus-after-activation t)
  (setq imenu-list-auto-resize nil)
  (setq imenu-list-auto-update t)
  (setq imenu-list-idle-update-delay 5.0)
  (add-hook 'imenu-list-major-mode-hook #'my/imenu-list-tuncates-without-tab-line)
  :config
 
  ;;;;###autoload
  (defun spacemacs/imenu-list-smart-focus ()
    "Focus the `imenu-list' buffer, creating as necessary.
If the imenu-list buffer is displayed in any window, focus it, otherwise create and focus.
Note that all the windows in every frame searched, even invisible ones, not
only those in the selected frame."
    (interactive)
    (if (get-buffer-window imenu-list-buffer-name t)
        (imenu-list-show)
      (imenu-list-smart-toggle)))
 
  (progn ; imenu-list--set-mode-line
    (setq imenu-list-mode-line-format
          (eval
           '(progn
              (require 'doom-modeline)
              (doom-modeline-def-segment imenu-workspace-name
                "Display imenu"
                (propertize (format "%s" (buffer-name imenu-list--displayed-buffer))
                            'face (doom-modeline-face 'doom-modeline-buffer-minor-mode)))
              (doom-modeline-def-modeline 'imenu '(bar window-number " " major-mode) '(imenu-workspace-name))
              (doom-modeline 'imenu))))
    )
  )
 
(global-set-key (kbd "<f8>") 'imenu-list-smart-toggle)
(global-set-key (kbd "M-<f8>") 'spacemacs/imenu-list-smart-focus)