merge
authorLuke Hoersten <luke@hoersten.org>
Tue, 29 Dec 2015 17:55:49 -0600
changeset 88 0ed9a6acb330
parent 87 5e8b9d224e3e (diff)
parent 86 22b2ad459bc1 (current diff)
child 89 86b51baf77dd
merge
init.el
--- a/elisp/haskell-init.el	Wed Nov 11 10:13:23 2015 -0600
+++ b/elisp/haskell-init.el	Tue Dec 29 17:55:49 2015 -0600
@@ -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)
--- a/init.el	Wed Nov 11 10:13:23 2015 -0600
+++ b/init.el	Tue Dec 29 17:55:49 2015 -0600
@@ -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