Browse code
Miscellaneous changes
- git-update-repos added amongst other things
- emacs startup time optimizations
Showing 9 changed files
- emacs.d/init.el
- emacs.d/lisp/cjpad.el
- emacs.d/lisp/utils.el
- zsh/zsh_plugins/00-aaa.zsh
- zsh/zsh_plugins/01-git.zsh
- zsh/zsh_plugins/99-interaction.zsh
- zsh/zsh_plugins/dependencies/detect-gnu.zsh
- zsh/zsh_plugins/dependencies/foobar.zsh
- zsh/zsh_plugins/dependencies/utils.zsh
... | ... |
@@ -1,19 +1,54 @@ |
1 |
-;;;; -*- mode: Emacs-Lisp;tab-width: 8;indent-tabs-mode: nil; -*- |
|
1 |
+;; -*- mode: Emacs-Lisp;tab-width: 8;indent-tabs-mode: nil; -*- |
|
2 |
+(setq gc-cons-threshold 100000000) |
|
3 |
+(message invocation-name) |
|
4 |
+(setq inhibit-splash-screen t) |
|
5 |
+(setq inhibit-startup-message t) |
|
6 |
+ |
|
7 |
+;;(let ((file-name-handler-alist nil)) |
|
8 |
+ |
|
9 |
+(add-hook 'after-init-hook |
|
10 |
+ (lambda () |
|
11 |
+ ;; (require 'projectile) |
|
12 |
+ ;; (require 'evil-numbers) |
|
13 |
+ |
|
14 |
+ (unless (fboundp 'server-running-p) |
|
15 |
+ (require 'server)) |
|
16 |
+ (unless (server-running-p) |
|
17 |
+ (server-start)) |
|
18 |
+ (projectile-mode) |
|
19 |
+ (evil-mode) |
|
20 |
+ (paredit-mode) |
|
21 |
+ ;;(global-company-mode) |
|
22 |
+ (setq linum-format "%5d\u2502") |
|
23 |
+ (global-linum-mode) |
|
24 |
+ (set-exec-path-from-shell-PATH) |
|
25 |
+ |
|
26 |
+ ;; NOTE: this must be here... |
|
27 |
+ (slime-setup) |
|
28 |
+ |
|
29 |
+ (global-company-mode 1) |
|
30 |
+ |
|
31 |
+ )) |
|
32 |
+ |
|
2 | 33 |
|
3 | 34 |
(when (file-exists-p "/usr/local/bin/gls") |
4 | 35 |
(setq insert-directory-program "/usr/local/bin/gls")) |
5 | 36 |
|
6 |
-(setq default-directory "~/emacs-home/") |
|
7 |
-(make-directory default-directory t) |
|
8 | 37 |
|
9 | 38 |
(let ((default-directory "~/.emacs.d/lisp/")) |
10 | 39 |
(make-directory default-directory t) |
11 | 40 |
(normal-top-level-add-to-load-path '(".")) |
12 |
- (normal-top-level-add-subdirs-to-load-path)) |
|
41 |
+ (normal-top-level-add-subdirs-to-load-path) |
|
42 |
+ |
|
43 |
+ (load "utils")) |
|
44 |
+ |
|
45 |
+(setq default-directory "~/emacs-home/") |
|
46 |
+(make-directory default-directory t) |
|
13 | 47 |
|
14 | 48 |
(setq vc-follow-symlinks t) |
15 | 49 |
|
16 | 50 |
(require 'package) |
51 |
+ |
|
17 | 52 |
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") |
18 | 53 |
("org" . "http://orgmode.org/elpa/") |
19 | 54 |
("melpa" . "https://melpa.org/packages/") |
... | ... |
@@ -28,26 +63,37 @@ |
28 | 63 |
(package-refresh-contents) |
29 | 64 |
(package-install 'use-package)) |
30 | 65 |
|
66 |
+ |
|
67 |
+ |
|
31 | 68 |
(require 'use-package) |
69 |
+(use-package color-theme :ensure t) |
|
70 |
+(use-package zenburn-theme :ensure t) |
|
71 |
+(color-theme-initialize) |
|
72 |
+(load-theme 'zenburn t) |
|
73 |
+ |
|
32 | 74 |
(use-package evil |
33 | 75 |
:ensure t |
34 | 76 |
:config |
35 | 77 |
|
36 |
- (define-key evil-normal-state-map " o" 'slime-selector) |
|
37 |
- (define-key evil-insert-state-map (kbd "TAB") 'company-complete) |
|
38 |
- |
|
78 |
+ (advice-add 'evil-delete-marks :after |
|
79 |
+ (lambda (&rest args) |
|
80 |
+ (evil-visual-mark-render))) |
|
39 | 81 |
|
82 |
+ (define-key evil-normal-state-map " o" 'slime-selector) |
|
83 |
+ (define-key evil-insert-state-map (kbd "TAB") 'company-indent-or-complete-common) |
|
84 |
+ (evil-mode) |
|
40 | 85 |
(use-package evil-paredit |
41 | 86 |
:ensure t |
42 | 87 |
:after paredit |
43 | 88 |
:config |
44 | 89 |
(evil-paredit-mode)) |
45 | 90 |
|
46 |
- (use-package evil-numbers |
|
47 |
- :ensure t |
|
48 |
- :config |
|
49 |
- (global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt) |
|
50 |
- (global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt)) |
|
91 |
+ |
|
92 |
+ ;;(use-package evil-numbers |
|
93 |
+ ;; :ensure t |
|
94 |
+ ;; :config |
|
95 |
+ ;; (global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt) |
|
96 |
+ ;; (global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt)) |
|
51 | 97 |
|
52 | 98 |
(use-package evil-surround |
53 | 99 |
:ensure t |
... | ... |
@@ -60,26 +106,20 @@ |
60 | 106 |
(global-evil-leader-mode) |
61 | 107 |
(evil-leader/set-leader ","))) |
62 | 108 |
|
109 |
+(use-package emmet-mode |
|
110 |
+ :ensure t |
|
111 |
+ :config |
|
112 |
+ (define-key evil-insert-state-map (kbd "C-c ,") 'emmet-expand-line) |
|
113 |
+ ) |
|
114 |
+ |
|
63 | 115 |
(use-package lisp-skeletons |
64 |
- :config |
|
65 |
- (add-hook 'skeleton-end-hook 'skeleton-make-markers) |
|
66 |
- |
|
67 |
- |
|
68 |
- (defun helm-generate-lisp-skeleton () |
|
69 |
- (interactive) |
|
70 |
- (let ((skeletons '(("defunction" . skel-defun) |
|
71 |
- ("defmacro" . skel-defmacro) |
|
72 |
- ("defsystem" . skel-defsystem) |
|
73 |
- ("defpackage" . skel-defpackage) |
|
74 |
- ("defparameter" . skel-defparameter) |
|
75 |
- ("defvar" . skel-defvar)))) |
|
76 |
- (funcall (helm-comp-read "code template: " skeletons)) |
|
77 |
- (evil-insert 1))) |
|
78 |
- |
|
79 |
- (define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position) |
|
80 |
- (define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position) |
|
81 |
- (define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton) |
|
82 |
- (define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton)) |
|
116 |
+ :config |
|
117 |
+ (add-hook 'skeleton-end-hook 'skeleton-make-markers) |
|
118 |
+ |
|
119 |
+ (define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position) |
|
120 |
+ (define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position) |
|
121 |
+ (define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton) |
|
122 |
+ (define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton)) |
|
83 | 123 |
|
84 | 124 |
;;;;; INDENTATION SETUP {{{ |
85 | 125 |
(progn |
... | ... |
@@ -96,68 +136,63 @@ |
96 | 136 |
(setq browse-url-browser-function |
97 | 137 |
'eww-browse-url) |
98 | 138 |
|
99 |
-;;;;; SLIME SETUP {{{ |
|
100 |
-(progn ;slime isn't loaded via use-package because quicklisp-helper keeps it uptodate |
|
101 |
- (load (expand-file-name "~/quicklisp/slime-helper.el")) |
|
102 |
- |
|
103 |
- (when (and (boundp 'common-lisp-hyperspec-root) |
|
104 |
- (string-prefix-p "/" common-lisp-hyperspec-root)) |
|
105 |
- (setq common-lisp-hyperspec-root |
|
106 |
- (concat "file://" common-lisp-hyperspec-root))) |
|
107 |
- |
|
108 |
- ;; Replace "sbcl" with the path to your implementation |
|
109 |
- (setq inferior-lisp-program "~/sbcl/bin/sbcl") |
|
110 |
- |
|
111 |
- (defun create-system-files () |
|
112 |
- (interactive) |
|
113 |
- (mapcar (lambda (it) (save-buffer (find-file (format "%s.lisp" (cadr it))))) |
|
114 |
- (getf (cddar (read-from-string |
|
115 |
- (buffer-substring (point) |
|
116 |
- (mark)))) |
|
117 |
- :components))) |
|
118 |
- |
|
119 |
- (defun slime-ecl () |
|
120 |
- (interactive) |
|
121 |
- (let ((inferior-lisp-program "ecl")) |
|
122 |
- (slime))) |
|
123 |
- |
|
124 |
- (defun slime-cmucl () |
|
125 |
- (interactive) |
|
126 |
- (let ((inferior-lisp-program "cmucl")) |
|
127 |
- (slime))) |
|
128 |
- |
|
129 |
- (defun slime-sbcl () |
|
130 |
- (interactive) |
|
131 |
- (let ((inferior-lisp-program "sbcl")) |
|
132 |
- (slime))) |
|
133 |
- |
|
134 |
- (defun slime-ccl () |
|
135 |
- (interactive) |
|
136 |
- (let ((inferior-lisp-program "ccl")) |
|
137 |
- (slime))) |
|
138 |
- |
|
139 |
- (add-hook 'lisp-mode-hook |
|
140 |
- '(lambda () |
|
141 |
- ;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol) |
|
142 |
- (unless (string= "*slime-scratch*" (buffer-name)) |
|
143 |
- (paredit-mode) |
|
144 |
- (evil-paredit-mode)) |
|
145 |
- (rainbow-delimiters-mode))) |
|
146 |
- (setq slime-contribs |
|
147 |
- '(slime-fancy |
|
148 |
- slime-company |
|
149 |
- slime-macrostep |
|
150 |
- slime-trace-dialog |
|
151 |
- slime-mdot-fu))) |
|
152 |
- |
|
139 |
+ ;;;;; SLIME SETUP {{{ |
|
153 | 140 |
(use-package slime-company |
154 | 141 |
:no-require t |
155 |
- :defer t |
|
156 | 142 |
:ensure t) |
157 | 143 |
|
158 |
-;;;;; }}} |
|
144 |
+(load (expand-file-name "~/quicklisp/slime-helper.el")) |
|
145 |
+ |
|
146 |
+(run-with-idle-timer |
|
147 |
+ 5 nil ;slime isn't loaded via use-package because quicklisp-helper keeps it uptodate |
|
148 |
+ (lambda () |
|
149 |
+ |
|
150 |
+ (when (and (boundp 'common-lisp-hyperspec-root) |
|
151 |
+ (string-prefix-p "/" common-lisp-hyperspec-root)) |
|
152 |
+ (setq common-lisp-hyperspec-root |
|
153 |
+ (concat "file://" common-lisp-hyperspec-root))) |
|
154 |
+ |
|
155 |
+ ;; Replace "sbcl" with the path to your implementation |
|
156 |
+ (setq inferior-lisp-program "~/sbcl/bin/sbcl") |
|
157 |
+ |
|
158 |
+ (add-hook 'lisp-mode-hook |
|
159 |
+ '(lambda () |
|
160 |
+ ;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol) |
|
161 |
+ (unless (string= "*slime-scratch*" (buffer-name)) |
|
162 |
+ (paredit-mode) |
|
163 |
+ (evil-paredit-mode)) |
|
164 |
+ (rainbow-delimiters-mode))) |
|
165 |
+ (setq slime-contribs |
|
166 |
+ '(slime-fancy |
|
167 |
+ slime-company |
|
168 |
+ slime-macrostep |
|
169 |
+ slime-trace-dialog |
|
170 |
+ slime-mdot-fu)) |
|
171 |
+ |
|
172 |
+ |
|
173 |
+ (modify-syntax-entry ?- "w" lisp-mode-syntax-table) |
|
174 |
+ (modify-syntax-entry ?* "w" lisp-mode-syntax-table) |
|
175 |
+ (modify-syntax-entry ?+ "w" lisp-mode-syntax-table) |
|
176 |
+ (modify-syntax-entry ?! "w" lisp-mode-syntax-table) |
|
177 |
+ (modify-syntax-entry ?$ "w" lisp-mode-syntax-table) |
|
178 |
+ (modify-syntax-entry ?% "w" lisp-mode-syntax-table) |
|
179 |
+ (modify-syntax-entry ?& "w" lisp-mode-syntax-table) |
|
180 |
+ (modify-syntax-entry ?% "w" lisp-mode-syntax-table) |
|
181 |
+ (modify-syntax-entry ?= "w" lisp-mode-syntax-table) |
|
182 |
+ (modify-syntax-entry ?< "w" lisp-mode-syntax-table) |
|
183 |
+ (modify-syntax-entry ?> "w" lisp-mode-syntax-table) |
|
184 |
+ ;;(modify-syntax-entry ?@ "w" lisp-mode-syntax-table) |
|
185 |
+ |
|
186 |
+ (modify-syntax-entry ?^ "w" lisp-mode-syntax-table) |
|
187 |
+ (modify-syntax-entry ?_ "w" lisp-mode-syntax-table) |
|
188 |
+ (modify-syntax-entry ?~ "w" lisp-mode-syntax-table) |
|
189 |
+ (modify-syntax-entry ?. "w" lisp-mode-syntax-table) |
|
190 |
+ |
|
191 |
+ )) |
|
192 |
+ |
|
193 |
+ ;;;;; }}} |
|
159 | 194 |
(use-package company |
160 |
- :ensure t |
|
195 |
+ :defer 5 |
|
161 | 196 |
:config |
162 | 197 |
;; keybindings |
163 | 198 |
(progn (define-key company-active-map (kbd "C-c h") 'company-quickhelp-manual-begin) |
... | ... |
@@ -166,7 +201,7 @@ |
166 | 201 |
(define-key company-active-map (kbd "{") (kbd "RET SPC {")) |
167 | 202 |
(define-key company-active-map (kbd "[") (kbd "RET ["))) |
168 | 203 |
|
169 |
- (message "backends: %s" company-backends) |
|
204 |
+ ;;(message "backends: %s" company-backends) |
|
170 | 205 |
(setq company-backends |
171 | 206 |
'(company-clang |
172 | 207 |
company-bbdb |
... | ... |
@@ -184,14 +219,12 @@ |
184 | 219 |
company-dabbrev)) |
185 | 220 |
) |
186 | 221 |
|
187 |
-;; NOTE: this must be here... |
|
188 |
-(slime-setup) |
|
189 |
- |
|
190 |
-(global-company-mode 1) |
|
191 |
- |
|
192 | 222 |
(use-package projectile |
193 | 223 |
:ensure t |
194 | 224 |
:config |
225 |
+ (projectile-register-project-type |
|
226 |
+ 'lisp '("*.asd")) |
|
227 |
+ |
|
195 | 228 |
(projectile-register-project-type |
196 | 229 |
'npm '("package.json") |
197 | 230 |
:compile "npm install" |
... | ... |
@@ -199,87 +232,53 @@ |
199 | 232 |
:run "npm start" |
200 | 233 |
:test-suffix ".spec")) |
201 | 234 |
|
202 |
-(use-package sbt-mode |
|
203 |
- :ensure t |
|
204 |
- :pin melpa-stable) |
|
205 |
- |
|
206 |
-(use-package scala-mode |
|
207 |
- :ensure t |
|
208 |
- :pin melpa-stable) |
|
209 |
- |
|
210 |
-(use-package ensime |
|
211 |
- :ensure t |
|
212 |
- :pin melpa-stable) |
|
213 |
- |
|
214 |
-(use-package intero |
|
215 |
- :ensure t) |
|
216 |
- |
|
217 |
-;; (use-package jdee |
|
218 |
-;; :ensure t) |
|
219 |
- |
|
220 |
-(use-package mvn |
|
221 |
- :ensure t) |
|
222 |
- |
|
223 |
-(use-package css-eldoc |
|
224 |
- :ensure t) |
|
225 |
- |
|
226 |
-(use-package ag |
|
227 |
- :ensure t) |
|
228 |
- |
|
229 |
-(use-package evil-vimish-fold |
|
230 |
- :ensure t |
|
231 |
- :config |
|
232 |
- (evil-vimish-fold-mode 1)) |
|
233 |
- |
|
234 |
-(use-package zenburn-theme |
|
235 |
- :ensure t) |
|
236 |
- |
|
237 |
-(use-package zeal-at-point |
|
238 |
- :ensure t) |
|
239 |
- |
|
240 |
-(use-package rainbow-delimiters |
|
241 |
- :ensure t) |
|
242 |
- |
|
243 |
-(use-package tabbar |
|
244 |
- :ensure t) |
|
245 |
- |
|
246 |
-(use-package helm |
|
247 |
- :ensure t) |
|
235 |
+(defmacro ensure-use-packages (&rest packages) |
|
236 |
+ (list* 'progn |
|
237 |
+ (mapcar (op `(use-package ,_ |
|
238 |
+ :ensure t)) |
|
239 |
+ packages))) |
|
240 |
+ |
|
241 |
+(use-package css-eldoc :ensure t) |
|
242 |
+(use-package ag :ensure t) |
|
243 |
+(use-package rainbow-delimiters :ensure t) |
|
244 |
+(use-package helm :ensure t) |
|
245 |
+(use-package helm-projectile :ensure t) |
|
246 |
+(use-package eldoc-eval :ensure t) |
|
247 |
+(use-package csv-mode :ensure t) |
|
248 |
+(use-package yaml-mode :ensure t) |
|
249 |
+(use-package web-mode :ensure t) |
|
250 |
+(use-package vue-mode :ensure t) |
|
251 |
+(use-package scss-mode :ensure t) |
|
252 |
+(use-package markdown-mode :ensure t) |
|
253 |
+(use-package magit :ensure t :defer 2) |
|
254 |
+(use-package highlight-parentheses :ensure t) |
|
255 |
+(use-package helm-projectile :ensure t) |
|
256 |
+(use-package helm-ls-git :ensure t) |
|
257 |
+(use-package helm-css-scss :ensure t) |
|
258 |
+;;(use-package ac-js2 :ensure t) |
|
259 |
+;;(use-package helm-cider :ensure t :defer 5) |
|
260 |
+(use-package helm-ag-r :ensure t) |
|
261 |
+(use-package helm-ag :ensure t) |
|
262 |
+(use-package project-explorer :ensure t) |
|
248 | 263 |
|
249 |
-(use-package helm-projectile |
|
250 |
- :ensure t) |
|
251 | 264 |
|
252 |
-(use-package evil-visual-mark-mode |
|
253 |
- :ensure t) |
|
254 |
- |
|
255 |
-(advice-add 'evil-delete-marks :after |
|
256 |
- (lambda (&rest args) |
|
257 |
- (evil-visual-mark-render))) |
|
265 |
+(progn ; helm |
|
266 |
+ (require 'helm-config) |
|
267 |
+ (helm-mode) |
|
268 |
+ (global-set-key (kbd "C-x C-f") 'helm-find-files) |
|
269 |
+ (define-key evil-normal-state-map " f" 'helm-projectile) |
|
270 |
+ (define-key evil-normal-state-map " j" 'helm-buffers-list) |
|
271 |
+ (global-set-key (kbd "M-x") 'helm-M-x)) |
|
258 | 272 |
|
259 |
-(use-package evil-nerd-commenter |
|
260 |
- :ensure t |
|
261 |
- :config |
|
262 |
- (evilnc-default-hotkeys t)) |
|
263 | 273 |
|
264 | 274 |
(use-package paredit |
265 | 275 |
:ensure t |
266 | 276 |
:config |
267 |
- (defun paredit-wiggle-back () |
|
268 |
- (paredit-forward) |
|
269 |
- (paredit-backward)) |
|
270 |
- |
|
271 |
- (defmacro defparedit-wrapper (name invoked-wrapper) |
|
272 |
- `(defun ,name () |
|
273 |
- (interactive) |
|
274 |
- (paredit-wiggle-back) |
|
275 |
- (,invoked-wrapper))) |
|
276 |
- |
|
277 | 277 |
(defparedit-wrapper back-then-wrap paredit-wrap-sexp) |
278 | 278 |
(defparedit-wrapper back-then-wrap-square paredit-wrap-square) |
279 | 279 |
(defparedit-wrapper back-then-wrap-curly paredit-wrap-curly) |
280 | 280 |
(defparedit-wrapper back-then-wrap-angled paredit-wrap-angled) |
281 | 281 |
(defparedit-wrapper back-then-wrap-doublequote paredit-meta-doublequote) |
282 |
- |
|
283 | 282 |
(define-key evil-normal-state-map ",W" 'back-then-wrap) |
284 | 283 |
(define-key evil-normal-state-map ",w]" 'back-then-wrap-square) |
285 | 284 |
(define-key evil-normal-state-map ",w}" 'back-then-wrap-curly) |
... | ... |
@@ -297,284 +296,28 @@ |
297 | 296 |
(define-key evil-normal-state-map ",." 'paredit-forward-barf-sexp) |
298 | 297 |
(define-key evil-normal-state-map ",~" 'paredit-convolute-sexp)) |
299 | 298 |
|
300 |
-(use-package eldoc-eval |
|
301 |
- :ensure t) |
|
302 |
- |
|
303 | 299 |
(use-package editorconfig |
304 | 300 |
:ensure t |
305 | 301 |
:config |
306 | 302 |
(editorconfig-mode 1)) |
307 | 303 |
|
308 |
-(use-package csv-mode |
|
309 |
- :ensure t) |
|
310 |
- |
|
311 |
-(use-package color-theme |
|
312 |
- :ensure t) |
|
313 |
- |
|
314 |
-(use-package ansible |
|
315 |
- :ensure t) |
|
316 |
- |
|
317 |
-(use-package alect-themes |
|
318 |
- :ensure t) |
|
319 |
- |
|
320 |
-(use-package ac-js2 |
|
321 |
- :ensure t) |
|
322 |
- |
|
323 |
-(use-package yaml-mode |
|
324 |
- :ensure t) |
|
325 |
- |
|
326 |
-(use-package web-mode |
|
327 |
- :ensure t) |
|
328 |
- |
|
329 |
-(use-package vue-mode |
|
330 |
- :ensure t) |
|
331 |
- |
|
332 |
-(use-package typescript-mode |
|
333 |
- :ensure t) |
|
334 |
- |
|
335 |
-(use-package scss-mode |
|
336 |
- :ensure t) |
|
337 |
- |
|
338 |
-(use-package rust-mode |
|
339 |
- :ensure t) |
|
340 |
- |
|
341 |
-(use-package markdown-mode |
|
342 |
- :ensure t) |
|
343 |
- |
|
344 |
-(use-package magit |
|
345 |
- :ensure t) |
|
346 |
- |
|
347 |
-(use-package highlight-parentheses |
|
348 |
- :ensure t) |
|
349 |
- |
|
350 |
-(use-package helm-projectile |
|
351 |
- :ensure t) |
|
352 |
- |
|
353 |
-(use-package helm-ls-git |
|
354 |
- :ensure t) |
|
355 |
- |
|
356 |
-;;(use-package helm-git |
|
357 |
-;; :ensure t) |
|
358 |
- |
|
359 |
-(use-package helm-css-scss |
|
360 |
- :ensure t) |
|
361 |
- |
|
362 |
-(use-package helm-cider |
|
363 |
- :ensure t) |
|
364 |
- |
|
365 |
-(use-package helm-ag-r |
|
366 |
- :ensure t) |
|
367 |
- |
|
368 |
-(use-package helm-ag |
|
369 |
- :ensure t) |
|
370 |
- |
|
371 |
-(use-package emmet-mode |
|
372 |
- :ensure t |
|
373 |
- :config |
|
374 |
- (define-key evil-insert-state-map (kbd "C-c ,") 'emmet-expand-line) |
|
375 |
- ) |
|
376 |
- |
|
377 |
-(use-package project-explorer |
|
378 |
- :ensure t |
|
379 |
- ) |
|
380 |
- |
|
381 |
-(use-package ggtags |
|
382 |
- :ensure t |
|
383 |
- :config |
|
384 |
- (ggtags-mode 1) |
|
385 |
- (add-hook 'c-mode-common-hook |
|
386 |
- (lambda () |
|
387 |
- (when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode) |
|
388 |
- (ggtags-mode 1))))) |
|
389 |
- |
|
390 |
- |
|
391 |
- |
|
392 |
-(use-package pollen-mode |
|
393 |
- :config |
|
394 |
- (defun insert-lozenge () |
|
395 |
- (interactive) |
|
396 |
- (insert-char 9674)) |
|
397 |
- (define-key evil-insert-state-map (kbd "C-c C-l") 'insert-lozenge)) |
|
398 |
- |
|
399 |
-(progn ; helm |
|
400 |
- (require 'helm-config) |
|
401 |
- (helm-mode) |
|
402 |
- (global-set-key (kbd "C-x C-f") 'helm-find-files) |
|
403 |
- (define-key evil-normal-state-map " f" 'helm-projectile) |
|
404 |
- (define-key evil-normal-state-map " j" 'helm-buffers-list) |
|
405 |
- (global-set-key (kbd "M-x") 'helm-M-x)) |
|
406 |
- |
|
407 |
-(require 'js2-mode) |
|
408 |
- |
|
409 |
-(require 'projectile) |
|
410 |
-(projectile-mode) |
|
411 |
- |
|
412 |
- |
|
413 |
- |
|
414 |
-(add-hook 'after-init-hook |
|
415 |
- (lambda () |
|
416 |
- (unless (server-running-p) |
|
417 |
- (server-start)) |
|
418 |
- (evil-mode) |
|
419 |
- (paredit-mode) |
|
420 |
- (global-company-mode) |
|
421 |
- (global-linum-mode))) |
|
422 |
- |
|
423 |
-(progn ; linum |
|
424 |
- (setq linum-format "%5d\u2502")) |
|
425 |
- |
|
426 |
-(require 'evil-numbers) |
|
427 |
- |
|
428 | 304 |
(define-key evil-normal-state-map "ZZ" 'save-buffer) |
429 | 305 |
|
430 |
-(define-key evil-normal-state-map ",zz" 'zeal-at-point) |
|
431 |
- |
|
432 |
-(modify-syntax-entry ?_ "w" js-mode-syntax-table) |
|
433 |
-(modify-syntax-entry ?- "w" lisp-mode-syntax-table) |
|
434 |
-(modify-syntax-entry ?* "w" lisp-mode-syntax-table) |
|
435 |
-(modify-syntax-entry ?+ "w" lisp-mode-syntax-table) |
|
436 |
-(modify-syntax-entry ?! "w" lisp-mode-syntax-table) |
|
437 |
-(modify-syntax-entry ?$ "w" lisp-mode-syntax-table) |
|
438 |
-(modify-syntax-entry ?% "w" lisp-mode-syntax-table) |
|
439 |
-(modify-syntax-entry ?& "w" lisp-mode-syntax-table) |
|
440 |
-(modify-syntax-entry ?% "w" lisp-mode-syntax-table) |
|
441 |
-(modify-syntax-entry ?= "w" lisp-mode-syntax-table) |
|
442 |
-(modify-syntax-entry ?< "w" lisp-mode-syntax-table) |
|
443 |
-(modify-syntax-entry ?> "w" lisp-mode-syntax-table) |
|
444 |
-(modify-syntax-entry ?@ "w" lisp-mode-syntax-table) |
|
445 |
-(modify-syntax-entry ?[ "w" lisp-mode-syntax-table) |
|
446 |
-(modify-syntax-entry ?] "w" lisp-mode-syntax-table) |
|
447 |
-(modify-syntax-entry ?^ "w" lisp-mode-syntax-table) |
|
448 |
-(modify-syntax-entry ?_ "w" lisp-mode-syntax-table) |
|
449 |
-(modify-syntax-entry ?~ "w" lisp-mode-syntax-table) |
|
450 |
-(modify-syntax-entry ?{ "w" lisp-mode-syntax-table) |
|
451 |
-(modify-syntax-entry ?} "w" lisp-mode-syntax-table) |
|
452 |
-(modify-syntax-entry ?. "w" lisp-mode-syntax-table) |
|
306 |
+;;(modify-syntax-entry ?_ "w" js-mode-syntax-table) |
|
453 | 307 |
|
454 | 308 |
(modify-syntax-entry ?- "w" emacs-lisp-mode-syntax-table) |
455 | 309 |
(modify-syntax-entry ?_ "w" emacs-lisp-mode-syntax-table) |
456 | 310 |
|
457 |
-(let ((default-directory "~/.emacs.d/lisp/")) |
|
458 |
- (make-directory default-directory t) |
|
459 |
- (normal-top-level-add-subdirs-to-load-path)) |
|
460 |
- |
|
461 |
- |
|
462 |
- |
|
463 |
-(setq erc-hide-list '("JOIN" "PART" "QUIT")) |
|
464 |
- |
|
465 |
-;; (defun znc-erc () |
|
466 |
-;; (interactive) |
|
467 |
-;; (erc-ssl :server "localhost" :port 6697 :nick "edwlan/freenode" :password "t31ch3rtb")) |
|
468 |
- |
|
469 |
-(add-to-list 'auto-mode-alist '("\\.cljs\\.hl\\'" . clojurescript-mode)) |
|
470 |
- |
|
471 |
-(add-hook 'ruby-mode-hook |
|
472 |
- '(lambda () |
|
473 |
- (eldoc-mode) |
|
474 |
- (robe-mode))) |
|
475 |
- |
|
476 |
- |
|
477 |
-(add-hook 'clojure-mode-hook |
|
478 |
- '(lambda () |
|
479 |
- ;; Hoplon functions and macros |
|
480 |
- (paredit-mode) |
|
481 |
- (define-key evil-insert-state-map "^N" 'helm-cider-apropos) |
|
482 |
- (dolist (pair '((page . 'defun) |
|
483 |
- (loop-tpl . 'defun) |
|
484 |
- (if-tpl . '1) |
|
485 |
- (for-tpl . '1) |
|
486 |
- (case-tpl . '1) |
|
487 |
- (cond-tpl . 'defun))) |
|
488 |
- (put-clojure-indent (car pair) |
|
489 |
- (car (last pair)))))) |
|
490 |
- |
|
491 |
-(setq tls-program '("openssl s_client -connect %h:%p -no_ssl2 -ign_eof")) |
|
492 |
- |
|
493 |
-(global-auto-revert-mode t) |
|
494 |
- |
|
495 |
- ;;; Use auto-complete for ensime |
|
496 |
- |
|
497 |
-(defun scala/enable-eldoc () |
|
498 |
- "Show error message or type name at point by Eldoc." |
|
499 |
- (setq-local eldoc-documentation-function |
|
500 |
- #'(lambda () |
|
501 |
- (when (ensime-connected-p) |
|
502 |
- (let ((err (ensime-print-errors-at-point))) |
|
503 |
- (or (and err (not (string= err "")) err) |
|
504 |
- (ensime-print-type-at-point)))))) |
|
505 |
- (eldoc-mode +1)) |
|
506 |
- |
|
507 |
-(defun scala/completing-dot-company () |
|
508 |
- (cond (company-backend |
|
509 |
- (company-complete-selection) |
|
510 |
- (scala/completing-dot)) |
|
511 |
- (t |
|
512 |
- (insert ".") |
|
513 |
- (company-complete)))) |
|
514 |
- |
|
515 |
-(defun scala/completing-dot-ac () |
|
516 |
- (insert ".") |
|
517 |
- (ac-trigger-key-command t)) |
|
518 |
- |
|
519 |
-;; Interactive commands |
|
520 |
- |
|
521 |
-(defun scala/completing-dot () |
|
522 |
- "Insert a period and show company completions." |
|
523 |
- (interactive "*") |
|
524 |
- (eval-and-compile (require 'ensime)) |
|
525 |
- (eval-and-compile (require 's)) |
|
526 |
- (when (s-matches? (rx (+ (not space))) |
|
527 |
- (buffer-substring (line-beginning-position) (point))) |
|
528 |
- (delete-horizontal-space t)) |
|
529 |
- (cond ((not (and (ensime-connected-p) ensime-completion-style)) |
|
530 |
- (insert ".")) |
|
531 |
- ((eq ensime-completion-style 'company) |
|
532 |
- (scala/completing-dot-company)) |
|
533 |
- ((eq ensime-completion-style 'auto-complete) |
|
534 |
- (scala/completing-dot-ac)))) |
|
535 |
- |
|
536 |
-;; Initialization |
|
537 |
-(add-hook 'ensime-mode-hook #'scala/enable-eldoc) |
|
538 |
-(add-hook 'scala-mode-hook 'ensime-scala-mode-hook) |
|
539 |
-(add-hook 'scala-mode-hook 'flycheck-mode) |
|
540 |
-(add-hook 'haskell-mode-hook 'intero-mode) |
|
541 |
- |
|
542 |
-(add-hook 'c-mode-common-hook |
|
543 |
- (lambda () |
|
544 |
- (when (derived-mode-p 'c-mode 'c++-mode 'java-mode) |
|
545 |
- (semantic-mode 1) |
|
546 |
- |
|
547 |
- (global-semanticdb-minor-mode 1) |
|
548 |
- (global-semantic-idle-scheduler-mode 1) |
|
549 |
- (global-semantic-stickyfunc-mode 1) |
|
550 |
- |
|
551 |
- (helm-gtags-mode) |
|
552 |
- (ggtags-mode 1)))) |
|
553 |
- |
|
554 |
-(setq company-backends (delete 'company-semantic company-backends)) |
|
555 |
- |
|
556 |
-(defun alexott/cedet-hook () |
|
557 |
- (local-set-key "\C-c\C-j" 'semantic-ia-fast-jump) |
|
558 |
- (local-set-key "\C-c\C-s" 'semantic-ia-show-summary)) |
|
559 |
- |
|
560 |
-(add-hook 'c-mode-common-hook 'alexott/cedet-hook) |
|
561 |
-(add-hook 'c-mode-hook 'alexott/cedet-hook) |
|
562 |
-(add-hook 'c++-mode-hook 'alexott/cedet-hook) |
|
563 |
- |
|
564 |
-(defun set-exec-path-from-shell-PATH () |
|
565 |
- "Set up Emacs' `exec-path' and PATH environment variable to match that used by the user's shell. |
|
566 |
- |
|
567 |
- This is particularly useful under Mac OSX, where GUI apps are not started from a shell." |
|
568 |
- (interactive) |
|
569 |
- (let ((path-from-shell (replace-regexp-in-string "[ \t\n]*$" "" (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'")))) |
|
570 |
- (setenv "PATH" path-from-shell) |
|
571 |
- (setq exec-path (split-string path-from-shell path-separator)))) |
|
572 |
-(set-exec-path-from-shell-PATH) |
|
573 |
- |
|
574 |
-(require 'ede) |
|
575 |
-(global-ede-mode) |
|
311 |
+;;) |
|
576 | 312 |
|
577 | 313 |
(setq custom-file "~/.emacs.d/custom.el") |
578 | 314 |
(load-file custom-file) |
579 | 315 |
|
316 |
+(setq gc-cons-threshold (* 100 1024)) |
|
317 |
+ |
|
318 |
+(setq fwoar.is-ordinary (not (string= invocation-name "EmacsNotes"))) |
|
580 | 319 |
|
320 |
+(unless fwoar.is-ordinary |
|
321 |
+ (setq with-editor-emacsclient-executable "/usr/local/bin/emacsclient") |
|
322 |
+ (require 'cjpad) |
|
323 |
+ (find-file "~/notes.org")) |
581 | 324 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,82 @@ |
1 |
+;;; cjpad.el --- Skeletons for interacting with cjpad |
|
2 |
+ |
|
3 |
+;; Copyright (C) 2017 Edward Langley |
|
4 |
+ |
|
5 |
+;; Author: Edward Langley <fwoar@elangley.org> |
|
6 |
+;; Keywords: cjpad |
|
7 |
+;; Version: 0.0.1 |
|
8 |
+ |
|
9 |
+;; This program is free software; you can redistribute it and/or modify |
|
10 |
+;; it under the terms of the GNU General Public License as published by |
|
11 |
+;; the Free Software Foundation, either version 3 of the License, or |
|
12 |
+;; (at your option) any later version. |
|
13 |
+ |
|
14 |
+;; This program is distributed in the hope that it will be useful, |
|
15 |
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16 |
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17 |
+;; GNU General Public License for more details. |
|
18 |
+ |
|
19 |
+;; You should have received a copy of the GNU General Public License |
|
20 |
+;; along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
21 |
+ |
|
22 |
+;;; Commentary: |
|
23 |
+ |
|
24 |
+;; Put a description of the package here |
|
25 |
+ |
|
26 |
+;;; Code: |
|
27 |
+ |
|
28 |
+;; code goes here |
|
29 |
+ |
|
30 |
+(defun extract-pad-name (pad-url) |
|
31 |
+ (replace-regexp-in-string "^https?://cjpad.cj.com/\\([^/]+\\)/?$" |
|
32 |
+ "\\1" |
|
33 |
+ pad-url)) |
|
34 |
+ |
|
35 |
+(defun get-pad-url (name) |
|
36 |
+ (format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt" |
|
37 |
+ name)) |
|
38 |
+ |
|
39 |
+(defun convert-to-export (pad-url) |
|
40 |
+ (format "http://cjpad.cj.com/ep/pad/export/%s/latest?format=txt" |
|
41 |
+ (extract-pad-name pad-url))) |
|
42 |
+ |
|
43 |
+(defvar *cjpad-exports* "~/cjpad-imports/") |
|
44 |
+ |
|
45 |
+(defun get-cjpad (pad-name) |
|
46 |
+ (interactive "M") |
|
47 |
+ (let ((file-name (format "%s%s" *cjpad-exports* pad-name)) |
|
48 |
+ (pad-url (get-pad-url pad-name))) |
|
49 |
+ (with-current-buffer (url-retrieve-synchronously (get-pad-url pad-name)) |
|
50 |
+ (write-region nil nil file-name)) |
|
51 |
+ (find-file file-name))) |
|
52 |
+ |
|
53 |
+(defun import-cjpad (s e) |
|
54 |
+ (interactive "r") |
|
55 |
+ (message "=============================") |
|
56 |
+ (let* ((pad-url (buffer-substring s e))) |
|
57 |
+ (get-cjpad (extract-pad-name pad-url)) |
|
58 |
+ (save-excursion |
|
59 |
+ (end-of-line) |
|
60 |
+ (insert " [" file-name "]") |
|
61 |
+ (message "foo"))) |
|
62 |
+ (message "=============================")) |
|
63 |
+ |
|
64 |
+(defun update-cjpad-file (fn) |
|
65 |
+ (interactive "F") |
|
66 |
+ (message fn) |
|
67 |
+ (let* ((pad-name (file-name-base fn)) |
|
68 |
+ (pad-url (get-pad-url pad-name)) |
|
69 |
+ (file-name (format "%s%s" *cjpad-exports* pad-name))) |
|
70 |
+ (with-current-buffer (url-retrieve-synchronously pad-url) |
|
71 |
+ (write-region nil nil file-name)))) |
|
72 |
+ |
|
73 |
+(defun update-cjpad () |
|
74 |
+ (interactive) |
|
75 |
+ (update-cjpad-file (buffer-file-name (current-buffer)))) |
|
76 |
+ |
|
77 |
+(defun browse-cjpad () |
|
78 |
+ (interactive) |
|
79 |
+ (browse-url (format "http://cjpad.cj.com/%s" |
|
80 |
+ (file-name-base (buffer-file-name (current-buffer)))))) |
|
81 |
+ |
|
82 |
+(provide 'cjpad) |
0 | 83 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,106 @@ |
1 |
+(require 'cl) |
|
2 |
+ |
|
3 |
+(defun op--collect-args (body) |
|
4 |
+ (cl-flet ((walker (body &optional args) |
|
5 |
+ (if (null body) |
|
6 |
+ args |
|
7 |
+ (if (symbolp body) |
|
8 |
+ (when (eql ?\_ (elt (symbol-name body) 0)) |
|
9 |
+ (cons body args)) |
|
10 |
+ (if (listp body) |
|
11 |
+ (append (op--collect-args (car body)) |
|
12 |
+ (op--collect-args (cdr body)) |
|
13 |
+ )))))) |
|
14 |
+ (sort (walker body) |
|
15 |
+ (lambda (a b) |
|
16 |
+ (< (string-to-number (subseq (symbol-name a) 1)) |
|
17 |
+ (string-to-number (subseq (symbol-name b) 1))))))) |
|
18 |
+ |
|
19 |
+(defmacro op (&rest body) |
|
20 |
+ `(lambda ,(op--collect-args body) |
|
21 |
+ ,@body)) |
|
22 |
+ |
|
23 |
+ |
|
24 |
+(defun blank-line-p () |
|
25 |
+ (= (current-indentation) |
|
26 |
+ (- (line-end-position) (line-beginning-position)))) |
|
27 |
+ |
|
28 |
+(defun helm-generate-lisp-skeleton () |
|
29 |
+ (interactive) |
|
30 |
+ (let ((skeletons '(("defunction" . skel-defun) |
|
31 |
+ ("defmacro" . skel-defmacro) |
|
32 |
+ ("defsystem" . skel-defsystem) |
|
33 |
+ ("defpackage" . skel-defpackage) |
|
34 |
+ ("defparameter" . skel-defparameter) |
|
35 |
+ ("defvar" . skel-defvar)))) |
|
36 |
+ (funcall (helm-comp-read "code template: " skeletons)) |
|
37 |
+ (evil-insert 1))) |
|
38 |
+ |
|
39 |
+(defun create-system-files () |
|
40 |
+ (interactive) |
|
41 |
+ (mapcar (lambda (it) (save-buffer (find-file (format "%s.lisp" (cadr it))))) |
|
42 |
+ (getf (cddar (read-from-string |
|
43 |
+ (buffer-substring (point) |
|
44 |
+ (mark)))) |
|
45 |
+ :components))) |
|
46 |
+ |
|
47 |
+(defun slime-ecl () |
|
48 |
+ (interactive) |
|
49 |
+ (let ((inferior-lisp-program "ecl")) |
|
50 |
+ (slime))) |
|
51 |
+ |
|
52 |
+(defun slime-cmucl () |
|
53 |
+ (interactive) |
|
54 |
+ (let ((inferior-lisp-program "cmucl")) |
|
55 |
+ (slime))) |
|
56 |
+ |
|
57 |
+(defun slime-sbcl () |
|
58 |
+ (interactive) |
|
59 |
+ (let ((inferior-lisp-program "sbcl")) |
|
60 |
+ (slime))) |
|
61 |
+ |
|
62 |
+(defun slime-ccl () |
|
63 |
+ (interactive) |
|
64 |
+ (let ((inferior-lisp-program "ccl")) |
|
65 |
+ (slime))) |
|
66 |
+ |
|
67 |
+(defun find-use-clause (current-form) |
|
68 |
+ (when current-form |
|
69 |
+ (destructuring-bind (discriminator . packages) current-form |
|
70 |
+ (case discriminator |
|
71 |
+ (:use (remove-if (op (or (eql :cl _))) |
|
72 |
+ (cdr current-form))) |
|
73 |
+ (defpackage (find-use-clause |
|
74 |
+ (find-if (lambda (f) |
|
75 |
+ (and (listp f) |
|
76 |
+ (eql (car f) :use))) |
|
77 |
+ '(defpackage :tracking-sim (:use :cl :alexandria :serapeum) (:export))))))))) |
|
78 |
+ |
|
79 |
+(defun load-package-uses () |
|
80 |
+ (interactive) |
|
81 |
+ (slime-eval-async `(ql:quickload ',(find-use-clause (list-at-point))))) |
|
82 |
+ |
|
83 |
+(defun paredit-wiggle-back () |
|
84 |
+ (paredit-forward) |
|
85 |
+ (paredit-backward)) |
|
86 |
+ |
|
87 |
+(defmacro defparedit-wrapper (name invoked-wrapper) |
|
88 |
+ `(defun ,name () |
|
89 |
+ (interactive) |
|
90 |
+ (paredit-wiggle-back) |
|
91 |
+ (,invoked-wrapper))) |
|
92 |
+ |
|
93 |
+(defun set-exec-path-from-shell-PATH () |
|
94 |
+ "Set up Emacs' `exec-path' and PATH environment variable to match |
|
95 |
+that used by the user's shell. |
|
96 |
+ |
|
97 |
+ This is particularly useful under Mac OSX, where GUI apps are not |
|
98 |
+started from a shell." |
|
99 |
+ (interactive) |
|
100 |
+ (let ((path-from-shell |
|
101 |
+ (replace-regexp-in-string "[ \t\n]*$" "" |
|
102 |
+ (shell-command-to-string |
|
103 |
+ "zsh -c 'source ~/.zsh.d/dependencies/utils.zsh;source ~/.zsh.d/dependencies/path-setup.zsh;echo $PATH'") |
|
104 |
+))) |
|
105 |
+ (setenv "PATH" path-from-shell) |
|
106 |
+ (setq exec-path (split-string path-from-shell path-separator)))) |
... | ... |
@@ -1,3 +1,4 @@ |
1 |
+#:depends-on:path-setup |
|
1 | 2 |
#:depends-on:utils |
2 | 3 |
#:depends-on:nix |
3 | 4 |
#:depends-on:autoloads |
... | ... |
@@ -6,7 +7,8 @@ |
6 | 7 |
#:depends-on:editor-setup |
7 | 8 |
|
8 | 9 |
# echo "begin zshrc" |
9 |
-echo "shell session started for $USER on $TTY at `date`" | tee /dev/stderr | logger |
|
10 |
+ |
|
11 |
+interactive_echo "shell session started for $USER on $TTY at `date`" | tee /dev/stderr | logger |
|
10 | 12 |
|
11 | 13 |
source $HOME/.localzshrc.sh |
12 | 14 |
|
... | ... |
@@ -1,5 +1,15 @@ |
1 | 1 |
GIT_DEBUG=0 |
2 | 2 |
|
3 |
+git-update-repos() { |
|
4 |
+ find . -name .git | ( |
|
5 |
+ while read -r repo; do |
|
6 |
+ printf "---\n$repo\n"; |
|
7 |
+ git --work-tree="${repo%/*}" --git-dir="$repo" pull --ff-only ; |
|
8 |
+ printf "\n\n" |
|
9 |
+ done |
|
10 |
+ ) |
|
11 |
+} |
|
12 |
+ |
|
3 | 13 |
git-ub() { |
4 | 14 |
git stash || exit 1 |
5 | 15 |
git pull --rebase |
... | ... |
@@ -0,0 +1 @@ |
1 |
+echo foobar |