Added paredit, flx-ido and projectile.
authorLuke Hoersten <luke@hoersten.org>
Fri, 18 Sep 2015 17:39:07 -0500
changeset 82 12cf67bc486c
parent 81 4da7819d1a1c
child 83 ab9ebd922ccb
Added paredit, flx-ido and projectile.
.hgignore
elisp/haskell-init.el
init.el
--- a/.hgignore	Wed Sep 16 19:27:21 2015 -0500
+++ b/.hgignore	Fri Sep 18 17:39:07 2015 -0500
@@ -8,5 +8,6 @@
 \.DS_Store$
 session\..*$
 ac-comphist\.dat$
+^projectile-bookmarks\.eld$
 ~$
 \#.*\#$
--- a/elisp/haskell-init.el	Wed Sep 16 19:27:21 2015 -0500
+++ b/elisp/haskell-init.el	Fri Sep 18 17:39:07 2015 -0500
@@ -40,37 +40,37 @@
  'haskell-mode-hook
  (lambda ()
    ;; (imenu-add-menubar-index)
-   (flycheck-mode)
    ;; (haskell-indentation-mode t)
    (stack-mode)
+   ;; (flycheck-mode)
    (subword-mode)
-   (electric-indent-mode 0)
+   (electric-indent-mode nil)
    (structured-haskell-mode t)
    (set-face-background 'shm-quarantine-face "lemonchiffon")
-   (interactive-haskell-mode t)))
+   (interactive-haskell-mode t)
 
-(custom-set-variables
- '(capitalized-words-mode t)
- '(haskell-stylish-on-save t)
- '(haskell-indentation-layout-offset 4)
- '(haskell-indentation-left-offset 4)
+   (setq
+    capitalized-words-mode t
+    haskell-stylish-on-save t
+    haskell-indentation-layout-offset 4
+    haskell-indentation-left-offset 4
 
- '(haskell-notify-p t)
- '(haskell-align-imports-pad-after-name t)
- '(haskell-ask-also-kill-buffers nil)
- '(haskell-import-mapping t)
+    haskell-notify-p t
+    haskell-align-imports-pad-after-name t
+    haskell-ask-also-kill-buffers nil
+    haskell-import-mapping t
 
- '(shm-use-presentation-mode t)
- '(shm-auto-insert-skeletons t)
- '(shm-auto-insert-bangs t)
+    shm-use-presentation-mode t
+    shm-auto-insert-skeletons t
+    shm-auto-insert-bangs t
 
- '(haskell-interactive-mode-eval-pretty t)
- '(haskell-interactive-mode-scroll-to-bottom t)
- '(haskell-interactive-mode-eval-mode 'haskell-mode)
- '(haskell-interactive-popup-errors nil)
- '(haskell-process-type 'stack-ghci)
- '(haskell-process-auto-import-loaded-modules t)
- '(haskell-process-log t))
+    haskell-interactive-mode-eval-pretty t
+    haskell-interactive-mode-scroll-to-bottom t
+    haskell-interactive-mode-eval-mode 'haskell-mode
+    haskell-interactive-popup-errors nil
+    haskell-process-type 'stack-ghci
+    haskell-process-auto-import-loaded-modules t
+    haskell-process-log t)))
 
 ;; keys
 (define-key haskell-mode-map (kbd "M-,") 'haskell-who-calls)
--- a/init.el	Wed Sep 16 19:27:21 2015 -0500
+++ b/init.el	Fri Sep 18 17:39:07 2015 -0500
@@ -5,6 +5,7 @@
 (add-to-list 'load-path "~/.emacs.d/elisp")   ; set default emacs load path
 
 (setq-default
+ gc-cons-threshold 20000000                   ; gc every 20 MB allocated (form flx-ido docs)
  ediff-split-window-function
  'split-window-horizontally                   ; diff horizontally
  inhibit-splash-screen t                      ; disable splash screen
@@ -23,12 +24,10 @@
 (delete-selection-mode t)                     ; replace highlighted text
 (windmove-default-keybindings)                ; move between windows with shift-arrow
 (fset 'yes-or-no-p 'y-or-n-p)                 ; replace yes/no prompts
-;; (global-hl-line-mode t)                    ; highlight current line
 
 
 ;;; Coding
 (which-func-mode t)                           ; show current function
-(show-paren-mode t)                           ; show matching paren
 (transient-mark-mode t)                       ; show highlighting
 (global-font-lock-mode t)                     ; syntax highlighting
 (global-set-key (kbd "C-c c") 'compile)       ; compile
@@ -57,22 +56,28 @@
   (set-default-font (if is-mac "Ubuntu Mono-12" "Ubuntu Mono-10.5")))
 
 
-;;;; Mode-Specific ;;;;
+;;;; Packages ;;;;
+
+(require 'package-require)
+(package-require '(company exec-path-from-shell expand-region
+ smex markdown-mode markdown-mode+ ix hgignore-mode move-text paredit
+ rainbow-delimiters rainbow-mode json-mode json-reformat
+ solarized-theme terraform-mode visual-regexp yasnippet yaml-mode
+ zencoding-mode))
+
+
+;;; custom requires
+(require 'haskell-init)
+(require 'javascript-init)
+(require 'c-init)
+(require 'ansible-init)
+
 
 ;;; text-mode
 (add-hook 'fundamental-mode-hook 'flyspell-mode)      ; spellcheck text
 (add-hook 'fundamental-mode-hook 'turn-on-auto-fill)  ; autofill text
 
 
-;;; ido-mode
-(ido-mode t)                                          ; file/buffer selector
-(setq-default
- ido-enable-flex-matching t                           ; fuzzy matching for ido mode
- ido-create-new-buffer 'always                        ; create new buffer without prompt
- ido-everywhere t                                     ; use ido where possible
- ido-max-window-height 1)                             ; max ido window height
-
-
 ;;; whitespace-mode
 (global-whitespace-mode t)                            ; show whitespace
 (add-hook 'before-save-hook 'whitespace-cleanup)      ; cleanup whitespace on exit
@@ -111,20 +116,7 @@
     ("C++" (mode . c++-mode)))))
 (add-hook
  'ibuffer-mode-hook
- (lambda ()
-   (ido-mode t)
-   (ibuffer-switch-to-saved-filter-groups "default")))
-
-
-;;;; Requires and Packages ;;;;
-
-;;; packages
-(require 'package-require)
-(package-require '(ace-jump-mode company exec-path-from-shell
-expand-region smex hgignore-mode ido-at-point markdown-mode
-hgignore-mode move-text paredit rainbow-delimiters rainbow-mode
-json-mode json-reformat solarized-theme terraform-mode
-visual-regexp yasnippet yaml-mode zencoding-mode))
+ (lambda () (ibuffer-switch-to-saved-filter-groups "default")))
 
 
 ;;; shell
@@ -135,34 +127,26 @@
 (add-hook 'eshell-mode-hook (lambda () (setenv "TERM" "emacs")))
 
 
-;;; custom requires
-(require 'haskell-init)
-(require 'javascript-init)
-(require 'c-init)
-(require 'ansible-init)
-
-
 ;;; ido / smex / completion
-(ido-at-point-mode)
+(setq-default
+ ido-enable-flex-matching t                           ; fuzzy matching for ido mode
+ ido-create-new-buffer 'always                        ; create new buffer without prompt
+ ido-max-window-height 1                              ; max ido window height
+ ido-everywhere t                                     ; use ido where possible
+ ido-use-faces nil)
+(ido-mode t)                                          ; file/buffer selector
+(flx-ido-mode t)
 (global-set-key (kbd "M-/") 'completion-at-point)
 (global-set-key (kbd "M-x") 'smex)
 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
 
 
 ;;; emacs-lisp-mode
-(add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode)
-
-
-;;; ace-mode
-(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
-;; (autoload
-;;   'ace-jump-mode-pop-mark
-;;   "ace-jump-mode"
-;;   "Ace jump back:-)"
-;;   t)
-;; (eval-after-load "ace-jump-mode"
-;;   '(ace-jump-mode-enable-mark-sync))
-;; (define-key global-map (kbd "C-x SPC") 'ace-jump-mode-pop-mark)
+(add-hook
+ 'emacs-lisp-mode-hook
+ (lambda ()
+   (rainbow-mode)
+   (enable-paredit-mode)))
 
 
 ;;; company-mode
@@ -191,6 +175,17 @@
 (load-theme 'solarized-light)
 
 
+;;; show-paren-mode - needs to be loaded after theme
+(setq-default
+ show-paren-style 'expression
+ show-paren-delay 0)
+(set-face-attribute
+ 'show-paren-match nil
+ :background (face-background 'highlight)
+ :foreground (face-foreground 'highlight))
+(show-paren-mode t)
+
+
 ;;; yasnippets
 (setq-default yas-prompt-functions '(yas-ido-prompt yas-dropdown-prompt)) ; use ido for multiple snippets
 (yas-global-mode t)
@@ -198,8 +193,7 @@
 
 ;;; markdown-mode
 (add-hook 'markdown-mode-hook 'flyspell-mode)
-(setq-default
- markdown-command "pandoc -f markdown_github")
+(setq-default markdown-command "pandoc -f markdown_github")
 
 
 ;;; html-mode