Browse code
chore: cider configuration gets its own file
Ed Langley authored on 07/12/2019 07:33:39
Showing 3 changed files
Showing 3 changed files
... | ... |
@@ -310,109 +310,16 @@ With a prefix ARG invalidates the cache first." |
310 | 310 |
(print f) |
311 | 311 |
f) |
312 | 312 |
|
313 |
-(cl-defmethod fwoar--find-system (&context (major-mode clojure-mode)) |
|
314 |
- (let ((systems (directory-files |
|
315 |
- (locate-dominating-file default-directory |
|
316 |
- (lambda (n) |
|
317 |
- (or (directory-files n nil "project.clj") |
|
318 |
- (directory-files n nil "build.boot") |
|
319 |
- (directory-files n nil "deps.edn") |
|
320 |
- (directory-files n nil "shadow-cljs.edn")))) |
|
321 |
- t "^\\(project.clj\\|build.boot\\|deps.edn\\|shadow-cljs.edn\\)$"))) |
|
322 |
- (find-file (if (not (null (cdr systems))) |
|
323 |
- (helm-comp-read "system:" systems) |
|
324 |
- (car systems))))) |
|
325 |
- |
|
326 | 313 |
(cl-defgeneric fwoar--pl-selector () |
327 |
- (:method () |
|
328 |
- (slime-selector)) |
|
329 |
- |
|
330 |
- (:method (&context (major-mode clojure-mode)) |
|
331 |
- (cider-selector)) |
|
332 |
- (:method (&context (projectile-project-type (eql :clojure))) |
|
333 |
- (cider-selector)) |
|
334 |
- (:method (&context (major-mode cider-repl-mode)) |
|
335 |
- (cider-selector))) |
|
314 |
+ (:method () (slime-selector))) |
|
315 |
+(cl-defgeneric fwoar--find-system ()) |
|
336 | 316 |
|
337 | 317 |
(defun fwoar-pl-selector () |
338 | 318 |
(interactive) |
339 | 319 |
(fwoar--pl-selector)) |
340 | 320 |
(define-key evil-normal-state-map " o" 'fwoar-pl-selector) |
341 | 321 |
|
342 |
- |
|
343 |
-(use-package cider |
|
344 |
- :ensure t |
|
345 |
- :config |
|
346 |
- (require 'cider-selector) |
|
347 |
- (define-key evil-normal-state-map " t" 'cider-test-run-ns-tests) |
|
348 |
- (evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos) |
|
349 |
- |
|
350 |
- (def-cider-selector-method ?S "find clojure project file" |
|
351 |
- (fwoar--find-system)) |
|
352 |
- |
|
353 |
- (add-hook 'cider-mode-hook |
|
354 |
- (lambda () |
|
355 |
- (flycheck-mode) |
|
356 |
- (rainbow-delimiters-mode 1) |
|
357 |
- (evil-smartparens-mode 1) |
|
358 |
- (smartparens-strict-mode 1) |
|
359 |
- (aggressive-indent-mode 1) |
|
360 |
- (helm-cider-mode 1) |
|
361 |
- (cider-company-enable-fuzzy-completion))) |
|
362 |
- |
|
363 |
- (add-hook 'cider-repl-mode-hook |
|
364 |
- (lambda () |
|
365 |
- (rainbow-delimiters-mode 1) |
|
366 |
- (evil-smartparens-mode 1) |
|
367 |
- (smartparens-strict-mode 1) |
|
368 |
- (aggressive-indent-mode 0) |
|
369 |
- (helm-cider-mode 1) |
|
370 |
- (cider-company-enable-fuzzy-completion))) |
|
371 |
- |
|
372 |
- (modify-syntax-entry ?_ "w" clojure-mode-syntax-table) |
|
373 |
- (modify-syntax-entry ?- "w" clojure-mode-syntax-table) |
|
374 |
- (modify-syntax-entry ?~ "w" clojure-mode-syntax-table) |
|
375 |
- (modify-syntax-entry ?. "w" clojure-mode-syntax-table) |
|
376 |
- |
|
377 |
- (define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer) |
|
378 |
- (define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output) |
|
379 |
- (setq cider-save-file-on-load t |
|
380 |
- cider-repl-history-file "~/.emacs.d/cider-history.clj") |
|
381 |
- |
|
382 |
- (defun cider-eval-expression-at-point-in-repl () |
|
383 |
- (interactive) |
|
384 |
- (let ((form (cider-defun-at-point))) |
|
385 |
- ;; Strip excess whitespace |
|
386 |
- (while (string-match "\\`\s+\\|\n+\\'" form) |
|
387 |
- (setq form (replace-match "" t t form))) |
|
388 |
- (with-current-buffer (cider-current-repl nil t) |
|
389 |
- (let ((fw/window (get-buffer-window))) |
|
390 |
- (with-selected-window fw/window |
|
391 |
- (end-of-buffer) |
|
392 |
- (insert form) |
|
393 |
- (cider-repl-return) |
|
394 |
- (end-of-buffer)))))) |
|
395 |
- |
|
396 |
- (define-key cider-mode-map |
|
397 |
- (kbd "C-c C-j") 'cider-eval-expression-at-point-in-repl) |
|
398 |
- |
|
399 |
- ;; https://github.com/clojure-emacs/cider/issues/2435 |
|
400 |
- (defun cider--gather-session-params (session) |
|
401 |
- "Gather all params for a SESSION." |
|
402 |
- (let (params) |
|
403 |
- (dolist (repl (cdr session)) |
|
404 |
- (when (buffer-name repl) |
|
405 |
- (setq params (cider--gather-connect-params params repl)))) |
|
406 |
- (when-let* ((server (cider--session-server session))) |
|
407 |
- (setq params (cider--gather-connect-params params server))) |
|
408 |
- params)) |
|
409 |
- |
|
410 |
- ) |
|
411 |
- |
|
412 |
-(use-package flycheck-clj-kondo |
|
413 |
- :ensure t) |
|
414 |
- |
|
415 |
- |
|
322 |
+(load-package-configuration 'cider) |
|
416 | 323 |
|
417 | 324 |
(use-package imenu |
418 | 325 |
:config |
... | ... |
@@ -475,8 +382,6 @@ With a prefix ARG invalidates the cache first." |
475 | 382 |
|
476 | 383 |
(use-package helm-rg :ensure t) |
477 | 384 |
|
478 |
-(use-package helm-cider :ensure t) |
|
479 |
- |
|
480 | 385 |
(use-package helm-css-scss :ensure t) |
481 | 386 |
|
482 | 387 |
(use-package helm-ls-git :ensure t) |
... | ... |
@@ -496,18 +401,26 @@ With a prefix ARG invalidates the cache first." |
496 | 401 |
;;(magit-define-popup-action 'magit-dispatch-popup ?j "Browse remote" 'browse-at-remote) |
497 | 402 |
'magit-dispatch) |
498 | 403 |
|
499 |
-(defvar *fwoar-git-repos* |
|
500 |
- (file-name-as-directory |
|
501 |
- (expand-file-name (car (file-expand-wildcards "~/git*_repos")) |
|
502 |
- "~"))) |
|
503 |
- |
|
504 |
-(defun fwoar-git-repo (name ssh-remote http-remote) |
|
505 |
- (let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*)))) |
|
506 |
- (unless (file-exists-p dir-name) |
|
507 |
- (ecase fwoar-git-mode |
|
508 |
- (:ssh (magit-run-git-with-input "clone" ssh-remote dir-name)) |
|
509 |
- (:http (magit-run-git-with-input "clone" http-remote dir-name)))) |
|
510 |
- dir-name)) |
|
404 |
+(use-package browse-at-remote |
|
405 |
+ :after magit |
|
406 |
+ :ensure t |
|
407 |
+ :config (push (cons "gitlab.cj.com" "gitlab") |
|
408 |
+ browse-at-remote-remote-type-domains)) |
|
409 |
+ |
|
410 |
+(eval-and-compile |
|
411 |
+ (defvar *fwoar-git-repos* |
|
412 |
+ (file-name-as-directory |
|
413 |
+ (expand-file-name (car (file-expand-wildcards "~/git*_repos")) |
|
414 |
+ "~")))) |
|
415 |
+ |
|
416 |
+(eval-and-compile |
|
417 |
+ (defun fwoar-git-repo (name ssh-remote http-remote) |
|
418 |
+ (let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*)))) |
|
419 |
+ (unless (file-exists-p dir-name) |
|
420 |
+ (ecase fwoar-git-mode |
|
421 |
+ (:ssh (magit-run-git-with-input "clone" ssh-remote dir-name)) |
|
422 |
+ (:http (magit-run-git-with-input "clone" http-remote dir-name)))) |
|
423 |
+ dir-name))) |
|
511 | 424 |
|
512 | 425 |
(defvar *dotfiles-repo* |
513 | 426 |
(fwoar-git-repo "dotfiles" |
514 | 427 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,96 @@ |
1 |
+(defun fwoar/cider-hook-base () |
|
2 |
+ (flycheck-mode) |
|
3 |
+ (rainbow-delimiters-mode 1) |
|
4 |
+ (evil-smartparens-mode 1) |
|
5 |
+ (smartparens-strict-mode 1) |
|
6 |
+ (helm-cider-mode 1) |
|
7 |
+ (cider-company-enable-fuzzy-completion)) |
|
8 |
+(defun fwoar/cider-hook () |
|
9 |
+ (fwoar/cider-hook-base) |
|
10 |
+ (aggressive-indent-mode 1)) |
|
11 |
+(defun fwoar/cider-repl-hook () |
|
12 |
+ (fwoar/cider-hook-base) |
|
13 |
+ (aggressive-indent-mode 0)) |
|
14 |
+ |
|
15 |
+(defun fwoar/cider-eval-expression-at-point-in-repl () |
|
16 |
+ (interactive) |
|
17 |
+ (let ((form (cider-defun-at-point))) |
|
18 |
+ ;; Strip excess whitespace |
|
19 |
+ (while (string-match "\\`\s+\\|\n+\\'" form) |
|
20 |
+ (setq form (replace-match "" t t form))) |
|
21 |
+ (with-current-buffer (cider-current-repl nil t) |
|
22 |
+ (let ((fw/window (get-buffer-window))) |
|
23 |
+ (with-selected-window fw/window |
|
24 |
+ (end-of-buffer) |
|
25 |
+ (insert form) |
|
26 |
+ (cider-repl-return) |
|
27 |
+ (end-of-buffer)))))) |
|
28 |
+ |
|
29 |
+(use-package cider |
|
30 |
+ :ensure t |
|
31 |
+ :config |
|
32 |
+ (require 'cider-selector) |
|
33 |
+ (define-key evil-normal-state-map " t" 'cider-test-run-ns-tests) |
|
34 |
+ (evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos) |
|
35 |
+ |
|
36 |
+ (def-cider-selector-method ?S "find clojure project file" |
|
37 |
+ (fwoar--find-system)) |
|
38 |
+ |
|
39 |
+ (add-hook 'cider-mode-hook 'fwoar/cider-hook) |
|
40 |
+ (add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook) |
|
41 |
+ |
|
42 |
+ (modify-syntax-entry ?: "w" clojure-mode-syntax-table) |
|
43 |
+ (modify-syntax-entry ?_ "w" clojure-mode-syntax-table) |
|
44 |
+ (modify-syntax-entry ?- "w" clojure-mode-syntax-table) |
|
45 |
+ (modify-syntax-entry ?~ "w" clojure-mode-syntax-table) |
|
46 |
+ (modify-syntax-entry ?. "w" clojure-mode-syntax-table) |
|
47 |
+ |
|
48 |
+ (define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer) |
|
49 |
+ (define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output) |
|
50 |
+ (setq cider-save-file-on-load t |
|
51 |
+ cider-repl-history-file "~/.emacs.d/cider-history.clj") |
|
52 |
+ |
|
53 |
+ (define-key cider-mode-map |
|
54 |
+ (kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl)) |
|
55 |
+ |
|
56 |
+(use-package clj-refactor |
|
57 |
+ :after cider |
|
58 |
+ :ensure t |
|
59 |
+ :config |
|
60 |
+ (evil-define-key 'normal clojure-mode-map (kbd "SPC r") 'hydra-cljr-toplevel-form-menu/body)) |
|
61 |
+ |
|
62 |
+ |
|
63 |
+(use-package helm-cider |
|
64 |
+ :after cider helm |
|
65 |
+ :ensure t) |
|
66 |
+ |
|
67 |
+(use-package flycheck-clj-kondo |
|
68 |
+ :after flycheck |
|
69 |
+ :ensure t) |
|
70 |
+ |
|
71 |
+ |
|
72 |
+(defun find-clojure-project-file () |
|
73 |
+ (let ((systems (directory-files |
|
74 |
+ (locate-dominating-file default-directory |
|
75 |
+ (lambda (n) |
|
76 |
+ (or (directory-files n nil "project.clj") |
|
77 |
+ (directory-files n nil "build.boot") |
|
78 |
+ (directory-files n nil "deps.edn") |
|
79 |
+ (directory-files n nil "shadow-cljs.edn")))) |
|
80 |
+ t "^\\(project.clj\\|build.boot\\|deps.edn\\|shadow-cljs.edn\\)$"))) |
|
81 |
+ (find-file (if (not (null (cdr systems))) |
|
82 |
+ (helm-comp-read "system:" systems) |
|
83 |
+ (car systems))))) |
|
84 |
+ |
|
85 |
+(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode clojure-mode))) |
|
86 |
+ (find-clojure-project-file)) |
|
87 |
+ |
|
88 |
+(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode cider-repl-mode))) |
|
89 |
+ (find-clojure-project-file)) |
|
90 |
+ |
|
91 |
+(defmethod fwoar--pl-selector (&context (major-mode clojure-mode)) |
|
92 |
+ (cider-selector)) |
|
93 |
+(defmethod fwoar--pl-selector (&context (projectile-project-type (eql :clojure))) |
|
94 |
+ (cider-selector)) |
|
95 |
+(defmethod fwoar--pl-selector (&context (major-mode cider-repl-mode)) |
|
96 |
+ (cider-selector)) |
0 | 97 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,59 @@ |
1 |
+(defun fwoar/cider-hook-base () |
|
2 |
+ (flycheck-mode) |
|
3 |
+ (rainbow-delimiters-mode 1) |
|
4 |
+ (evil-smartparens-mode 1) |
|
5 |
+ (smartparens-strict-mode 1) |
|
6 |
+ (helm-cider-mode 1) |
|
7 |
+ (cider-company-enable-fuzzy-completion)) |
|
8 |
+(defun fwoar/cider-hook () |
|
9 |
+ (fwoar/cider-hook-base) |
|
10 |
+ (aggressive-indent-mode 1)) |
|
11 |
+(defun fwoar/cider-repl-hook () |
|
12 |
+ (fwoar/cider-hook-base) |
|
13 |
+ (aggressive-indent-mode 0)) |
|
14 |
+ |
|
15 |
+(defun fwoar/cider-eval-expression-at-point-in-repl () |
|
16 |
+ (interactive) |
|
17 |
+ (let ((form (cider-defun-at-point))) |
|
18 |
+ ;; Strip excess whitespace |
|
19 |
+ (while (string-match "\\`\s+\\|\n+\\'" form) |
|
20 |
+ (setq form (replace-match "" t t form))) |
|
21 |
+ (with-current-buffer (cider-current-repl nil t) |
|
22 |
+ (let ((fw/window (get-buffer-window))) |
|
23 |
+ (with-selected-window fw/window |
|
24 |
+ (end-of-buffer) |
|
25 |
+ (insert form) |
|
26 |
+ (cider-repl-return) |
|
27 |
+ (end-of-buffer)))))) |
|
28 |
+ |
|
29 |
+(use-package cider |
|
30 |
+ :ensure t |
|
31 |
+ :config |
|
32 |
+ (require 'cider-selector) |
|
33 |
+ (define-key evil-normal-state-map " t" 'cider-test-run-ns-tests) |
|
34 |
+ (evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos) |
|
35 |
+ |
|
36 |
+ (def-cider-selector-method ?S "find clojure project file" |
|
37 |
+ (fwoar--find-system)) |
|
38 |
+ |
|
39 |
+ (add-hook 'cider-mode-hook 'fwoar/cider-hook) |
|
40 |
+ (add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook) |
|
41 |
+ |
|
42 |
+ (modify-syntax-entry ?: "w" clojure-mode-syntax-table) |
|
43 |
+ (modify-syntax-entry ?_ "w" clojure-mode-syntax-table) |
|
44 |
+ (modify-syntax-entry ?- "w" clojure-mode-syntax-table) |
|
45 |
+ (modify-syntax-entry ?~ "w" clojure-mode-syntax-table) |
|
46 |
+ (modify-syntax-entry ?. "w" clojure-mode-syntax-table) |
|
47 |
+ |
|
48 |
+ (define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer) |
|
49 |
+ (define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output) |
|
50 |
+ (setq cider-save-file-on-load t |
|
51 |
+ cider-repl-history-file "~/.emacs.d/cider-history.clj") |
|
52 |
+ |
|
53 |
+ (define-key cider-mode-map |
|
54 |
+ (kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl)) |
|
55 |
+ |
|
56 |
+(use-package flycheck-clj-kondo |
|
57 |
+ :ensure t) |
|
58 |
+ |
|
59 |
+ |