forked from purcell/emacs.d
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit-auto-complete.el
65 lines (51 loc) · 2.5 KB
/
init-auto-complete.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
(defvar ac-dictionary-directories '())
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/dict")
(require 'auto-complete)
(require 'auto-complete-config)
(ac-config-default)
(global-auto-complete-mode t)
(setq ac-stop-flymake-on-completing t)
(setq ac-auto-start 0)
(setq ac-delay 0.1)
(setq ac-ignore-case 'smart) ; insensitive for lower case
(setq ac-fuzzy-enable nil)
(setq ac-dwim nil) ; To get pop-ups with docs even if a word is uniquely completed
(define-key ac-completing-map (kbd "C-n") 'ac-next)
(define-key ac-completing-map (kbd "C-p") 'ac-previous)
;;----------------------------------------------------------------------------
;; Use Emacs' built-in TAB completion hooks to trigger AC (Emacs >= 23.2)
;;----------------------------------------------------------------------------
(setq tab-always-indent 'complete) ;; use 'complete when auto-complete is disabled
(add-to-list 'completion-styles 'initials t)
;; hook AC into completion-at-point
(defun set-auto-complete-as-completion-at-point-function ()
(setq completion-at-point-functions '(auto-complete)))
(add-hook 'auto-complete-mode-hook 'set-auto-complete-as-completion-at-point-function)
(set-default 'ac-sources
'(;; ac-source-abbrev
ac-source-yasnippet
;; ac-source-dictionary
ac-source-filename
ac-source-words-in-buffer
ac-source-words-in-same-mode-buffers))
(dolist (mode '(magit-log-edit-mode log-edit-mode org-mode text-mode haml-mode
sass-mode yaml-mode csv-mode espresso-mode haskell-mode
html-mode nxml-mode sh-mode smarty-mode clojure-mode
lisp-mode textile-mode markdown-mode tuareg-mode
css-mode less-css-mode emacs-lisp-mode python-mode))
(add-to-list 'ac-modes mode))
(set-face-background 'ac-candidate-face "#eee8d5")
(set-face-foreground 'ac-candidate-face "#657b83")
(set-face-underline 'ac-candidate-face nil)
(set-face-background 'ac-selection-face "#268bd2")
(set-face-foreground 'ac-selection-face "#fdf6e3")
(eval-after-load "viper"
'(progn
(define-key ac-completing-map (kbd "C-n") 'dabbrev-expand)
(define-key ac-completing-map (kbd "C-p") 'dabbrev-expand)
(define-key ac-completing-map viper-ESC-key 'viper-intercept-ESC-key)))
;; Exclude very large buffers from dabbrev
(defun smp-dabbrev-friend-buffer (other-buffer)
(< (buffer-size other-buffer) (* 1 1024 1024)))
(setq dabbrev-friend-buffer-function 'smp-dabbrev-friend-buffer)
(provide 'init-auto-complete)