diff options
| -rw-r--r-- | elisp/haskell-init.el | 1 | ||||
| -rw-r--r-- | init.el | 48 |
2 files changed, 27 insertions, 22 deletions
diff --git a/elisp/haskell-init.el b/elisp/haskell-init.el index d0bc1aa..77ee582 100644 --- a/elisp/haskell-init.el +++ b/elisp/haskell-init.el @@ -50,7 +50,6 @@ (flycheck-clear t) (imenu-add-menubar-index) (haskell-indentation-mode t) - (haskell-indentation-enable-show-indentations) (projectile-mode t) (stack-mode t) (subword-mode t) @@ -103,23 +103,29 @@ ;;; ibuffer (global-set-key (kbd "C-x C-b") 'ibuffer) ; better buffer browser -(setq-default - ibuffer-show-empty-filter-groups nil - ibuffer-saved-filter-groups - '(("default" - ("Emacs Lisp" (mode . emacs-lisp-mode)) - ("Haskell" (mode . haskell-mode)) - ("Cabal" (mode . haskell-cabal-mode)) - ("Python" (mode . python-mode)) - ("Jython" (mode . jython-mode)) - ("Clojure" (mode . clojure-mode)) - ("Markup" (mode . sgml-mode)) - ("HTML" (mode . html-mode)) - ("CSS" (mode . css-mode)) - ("C++" (mode . c++-mode))))) -(add-hook - 'ibuffer-mode-hook - (lambda () (ibuffer-switch-to-saved-filter-groups "default"))) +(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 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))) ;;; shell @@ -190,10 +196,10 @@ ;;; yasnippets -(with-eval-after-load 'yasnippet - (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs))) -(setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets -(yas-global-mode t) +;; (with-eval-after-load 'yasnippet +;; (setq yas-snippet-dirs (remq 'yas-installed-snippets-dir yas-snippet-dirs))) +;; (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets +;; (yas-global-mode t) ;;; markdown-mode |
