Mercurial > dotfiles
annotate .elisp/settings/40.modes.el @ 276:46979cef73b6
emacs: require and configure company mode
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Fri, 27 Apr 2012 16:48:48 -0500 |
parents | 8109c1d949c8 |
children | 884f7f932a83 |
rev | line source |
---|---|
77 | 1 ; use tab for indent or complete |
2 (defun indent-or-expand (arg) | |
3 "Either indent according to mode, or expand the word preceding | |
4 point." | |
5 (interactive "*P") | |
6 (if (and | |
7 (or (bobp) (= ?w (char-syntax (char-before)))) | |
8 (or (eobp) (not (= ?w (char-syntax (char-after)))))) | |
9 (dabbrev-expand arg) | |
10 (indent-according-to-mode))) | |
11 | |
12 (defun af-tab-fix () | |
13 (local-set-key [tab] 'indent-or-expand)) | |
14 | |
15 ;; add hooks for modes you want to use the tab completion for: | |
16 (set-variable 'af-cleanup-whitespace t) | |
17 (add-hook 'c-mode-hook 'af-tab-fix) | |
257
31f86a5707ee
c++: enable tab completion
Augie Fackler <durin42@gmail.com>
parents:
224
diff
changeset
|
18 (add-hook 'c++-mode-hook 'af-tab-fix) |
77 | 19 (add-hook 'sh-mode-hook 'af-tab-fix) |
20 (add-hook 'emacs-lisp-mode-hook 'af-tab-fix) | |
217
e4842709368a
emacs: move colors to their own file and migrate to whitespace from wspace
Augie Fackler <durin42@gmail.com>
parents:
202
diff
changeset
|
21 |
e4842709368a
emacs: move colors to their own file and migrate to whitespace from wspace
Augie Fackler <durin42@gmail.com>
parents:
202
diff
changeset
|
22 ;; disable whitespace cleanup in modes sensitive to whitespace |
189
0487f0197755
emacs: disable whitespace-cleanup in makefiles, highlight tabs in makefiles
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
23 (defun af-no-clean-whitespace () |
223
739d96003993
af-no-clean-whitespace: make interactive for easy disabling when it is just noise.
Augie Fackler <durin42@gmail.com>
parents:
218
diff
changeset
|
24 (interactive) |
189
0487f0197755
emacs: disable whitespace-cleanup in makefiles, highlight tabs in makefiles
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
25 (make-variable-buffer-local 'af-cleanup-whitespace) |
0487f0197755
emacs: disable whitespace-cleanup in makefiles, highlight tabs in makefiles
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
26 (set-variable 'af-cleanup-whitespace nil)) |
0487f0197755
emacs: disable whitespace-cleanup in makefiles, highlight tabs in makefiles
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
27 (add-hook 'rst-mode-hook 'af-no-clean-whitespace) |
217
e4842709368a
emacs: move colors to their own file and migrate to whitespace from wspace
Augie Fackler <durin42@gmail.com>
parents:
202
diff
changeset
|
28 (add-hook 'makefile-mode-hook 'af-no-clean-whitespace) |
77 | 29 |
224
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
30 |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
31 (defun af-go-hook () |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
32 ;; enable tabs |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
33 (setq tab-width 2) |
268
8109c1d949c8
go-mode-hook: disable tabs highlighting, enable tab indentation
Augie Fackler <durin42@gmail.com>
parents:
258
diff
changeset
|
34 (setq-default indent-tabs-mode t) |
8109c1d949c8
go-mode-hook: disable tabs highlighting, enable tab indentation
Augie Fackler <durin42@gmail.com>
parents:
258
diff
changeset
|
35 (make-variable-buffer-local 'whitespace-style) |
8109c1d949c8
go-mode-hook: disable tabs highlighting, enable tab indentation
Augie Fackler <durin42@gmail.com>
parents:
258
diff
changeset
|
36 (setq whitespace-style '(trailing lines-tail indentation trailing empty)) |
8109c1d949c8
go-mode-hook: disable tabs highlighting, enable tab indentation
Augie Fackler <durin42@gmail.com>
parents:
258
diff
changeset
|
37 (message "Fixed whitespace style") |
8109c1d949c8
go-mode-hook: disable tabs highlighting, enable tab indentation
Augie Fackler <durin42@gmail.com>
parents:
258
diff
changeset
|
38 ) |
224
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
39 |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
40 |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
41 (let ((go-emacs (concat (getenv "GOROOT") "/misc/emacs"))) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
42 (message (concat go-emacs "/go-mode.el")) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
43 (if (file-exists-p (concat go-emacs "/go-mode.el")) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
44 (progn (add-to-list 'load-path go-emacs) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
45 (require 'go-mode-load) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
46 (add-hook 'go-mode-hook 'af-go-hook)) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
47 (message "Go appears to not be installed, skipping go-mode."))) |
7ca719e40c58
modes: enable Go mode if it can be found
Augie Fackler <durin42@gmail.com>
parents:
223
diff
changeset
|
48 |
77 | 49 (autoload 'js2-mode "js2" nil t) |
50 (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) | |
51 (add-hook 'js2-mode-hook 'af-tab-fix) | |
52 | |
111
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
53 (add-hook 'ruby-mode-hook '(lambda () |
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
54 (af-tab-fix) |
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
55 (local-set-key (kbd "RET") |
116
85d912e123af
More ruby fixes, set html.erb to be some non-useless mode.
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
56 'reindent-then-newline-and-indent) |
85d912e123af
More ruby fixes, set html.erb to be some non-useless mode.
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
57 (local-set-key (kbd "C-M-f") |
85d912e123af
More ruby fixes, set html.erb to be some non-useless mode.
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
58 'textmate-find-in-project-type))) |
121 | 59 (add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode)) |
82
89f6d05cd7d5
Fix some ruby mode keybindings.
Augie Fackler <durin42@gmail.com>
parents:
79
diff
changeset
|
60 |
107 | 61 (require 'django-html-mode) |
62 ;; I think I probably just always want it in django mode for now | |
63 (add-to-list 'auto-mode-alist '("\\.html$'" . django-html-mode)) | |
116
85d912e123af
More ruby fixes, set html.erb to be some non-useless mode.
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
64 (add-to-list 'auto-mode-alist '("\\.html.erb$'" . django-html-mode)) |
85d912e123af
More ruby fixes, set html.erb to be some non-useless mode.
Augie Fackler <durin42@gmail.com>
parents:
111
diff
changeset
|
65 (add-to-list 'auto-mode-alist '("\\.rhtml$'" . django-html-mode)) |
111
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
66 (add-hook 'django-html-mode-hook '(lambda () |
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
67 (local-set-key (kbd "RET") |
6a64e61359b7
Unbreaks this file, but I am not sure if the django stuff is working properly.
Augie Fackler <durin42@gmail.com>
parents:
109
diff
changeset
|
68 'reindent-then-newline-and-indent))) |
77 | 69 (defun af-python-mode-hook () |
70 ; highlight tabs in Python | |
71 (make-variable-buffer-local 'font-lock-mode-hook) | |
72 (make-variable-buffer-local 'python-indent) | |
73 (if (and buffer-file-name (string-match "melange" buffer-file-name)) | |
74 (set-variable 'python-indent 2)) | |
75 (af-tab-fix) | |
94
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
76 (easy-menu-add-item nil '("Python") ["Run All Tests" nosetests-all t] |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
77 "Comment Out Region") |
120
e83373ab1581
Latest nosemacs, python menu item for running nose with --failed.
Augie Fackler <durin42@gmail.com>
parents:
116
diff
changeset
|
78 (easy-menu-add-item nil '("Python") ["Run All Tests with --failed" nosetests-failed t] |
e83373ab1581
Latest nosemacs, python menu item for running nose with --failed.
Augie Fackler <durin42@gmail.com>
parents:
116
diff
changeset
|
79 "Comment Out Region") |
94
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
80 (easy-menu-add-item nil '("Python") ["Run Module Tests" nosetests-module t] |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
81 "Comment Out Region") |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
82 (easy-menu-add-item nil '("Python") ["Run One Test" nosetests-one t] |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
83 "Comment Out Region") |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
84 (easy-menu-add-item nil '("Python") ["Debug One Test" nosetests-pdb-one t] |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
85 "Comment Out Region") |
9052c3801744
First stab at some menu items for the nose stuff.
Augie Fackler <durin42@gmail.com>
parents:
86
diff
changeset
|
86 (easy-menu-add-item nil '("Python") ["-" nil t] "Comment Out Region") |
102
16472f9a3543
Add some nosetests keybindings.
Augie Fackler <durin42@gmail.com>
parents:
101
diff
changeset
|
87 (local-set-key "\M-n" 'nosetests-module) |
16472f9a3543
Add some nosetests keybindings.
Augie Fackler <durin42@gmail.com>
parents:
101
diff
changeset
|
88 (local-set-key "\M-\C-n" 'nosetests-one) |
140
7fa84e297c84
emacs modes: use comment-indent-new-line for python
Augie Fackler <durin42@gmail.com>
parents:
121
diff
changeset
|
89 (local-set-key (kbd "RET") 'comment-indent-new-line) |
77 | 90 ) |
91 (add-hook 'python-mode-hook 'af-python-mode-hook) | |
92 | |
79
26f1ccac509c
Bind g to recompile in compilation-mode buffers.
Augie Fackler <durin42@gmail.com>
parents:
77
diff
changeset
|
93 (add-hook 'compilation-mode-hook '(lambda () (local-set-key "g" 'recompile))) |
192
fed1da889f84
emacs: enable column-number-mode
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
94 |
fed1da889f84
emacs: enable column-number-mode
Augie Fackler <durin42@gmail.com>
parents:
140
diff
changeset
|
95 (column-number-mode) |
202
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
96 |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
97 |
258
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
98 (defun af-annotation-fix (unused) |
202
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
99 "fix indentation after an annotation" |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
100 (save-excursion |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
101 (beginning-of-line) |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
102 (forward-word -1) |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
103 (if (eq (char-before) ?@) ;; There's an annotation there |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
104 0 |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
105 (+ c-basic-offset c-basic-offset)))) |
84eb8c90ada9
modes: handle annotations better
Augie Fackler <durin42@gmail.com>
parents:
198
diff
changeset
|
106 |
258
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
107 (defun af-java-mode-hook () |
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
108 (c-set-offset 'topmost-intro-cont 'af-annotation-fix) |
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
109 (local-set-key (kbd "RET") 'comment-indent-new-line) |
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
110 (af-tab-fix)) |
863f1503616f
emacs java: adjustments from actual java hackery
Augie Fackler <durin42@gmail.com>
parents:
257
diff
changeset
|
111 (add-hook 'java-mode-hook 'af-java-mode-hook) |
218
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
112 |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
113 ;; mq diff-mode support |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
114 (add-to-list 'auto-mode-alist '("\\.hg/patches/" . diff-mode)) |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
115 (defun mq-patch-set-default-directory () |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
116 (when (string= ".hg" (nth 2 (reverse (split-string default-directory "/")))) |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
117 (setq default-directory (expand-file-name (concat default-directory "../../"))))) |
b9b118dba61a
emacs: make diff-mode mq-aware
Augie Fackler <durin42@gmail.com>
parents:
217
diff
changeset
|
118 (add-hook 'diff-mode-hook 'mq-patch-set-default-directory) |