diff options
| author | Luke Hoersten <[email protected]> | 2025-10-02 10:33:24 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2025-10-02 10:33:24 -0500 |
| commit | 76ae38a01772a21b136fe2cf2224cbce69f3c11b (patch) | |
| tree | 2bc17778acbf092a8ce0a6ae8154e612df4d5ece | |
| parent | 0c260d5202f400c6dda3c731690718394f6ab899 (diff) | |
Replace custom ibuffer code with ibuffer-project
- Remove custom ibuffer major-mode grouping functions using obsolete flet
- Add ibuffer-project package for automatic project-based buffer grouping
- Simplify configuration from ~25 lines to ~6 lines
| -rw-r--r-- | init.el | 31 |
1 files changed, 7 insertions, 24 deletions
@@ -67,7 +67,7 @@ (require 'package-require) (package-require '(rg company exec-path-from-shell expand-region vertico orderless consult marginalia magit forge magit-todos markdown-mode hgignore-mode move-text paredit - rainbow-delimiters json-mode json-reformat flycheck treesit-auto + rainbow-delimiters json-mode json-reformat flycheck treesit-auto ibuffer-project solarized-theme terraform-mode visual-regexp yasnippet yaml-mode emmet-mode)) @@ -111,29 +111,12 @@ ;;; ibuffer (global-set-key (kbd "C-x C-b") 'ibuffer) ; better buffer browser -(require 'ibuffer) -(require 'ibuf-ext) -(defun ibuffer-generate-filter-groups-by-major-mode () - (flet - ((mode-group - (mode) - (let ((mode-title - (capitalize (car (split-string (symbol-name mode) "-" t))))) - (cons mode-title `((mode . ,mode))))) - (buffer-modes - () - (flet ((buffer-mode (buffer) (buffer-local-value 'major-mode buffer))) - (ibuffer-remove-duplicates (remq nil (mapcar 'buffer-mode (buffer-list))))))) - (mapcar 'mode-group (buffer-modes)))) - -(defun ibuffer-major-mode-group-hook () - (interactive) - (setq-default ibuffer-filter-groups (ibuffer-generate-filter-groups-by-major-mode)) - (ibuffer-update nil t) - (message "ibuffer-major-mode: groups set")) - -(setq-default ibuffer-show-empty-filter-groups nil) -(add-hook 'ibuffer-hook (lambda () (ibuffer-major-mode-group-hook))) +(add-hook 'ibuffer-hook + (lambda () + (ibuffer-project-set-filter-groups) + (unless (eq ibuffer-sorting-mode 'project-file-relative) + (ibuffer-do-sort-by-project-file-relative)))) +(setq ibuffer-show-empty-filter-groups nil) ;;; shell |
