-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit-clojure.el
More file actions
144 lines (123 loc) · 3.98 KB
/
Copy pathinit-clojure.el
File metadata and controls
144 lines (123 loc) · 3.98 KB
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
;;; elisp/init-clojure.el
;;(use-package clojure-mode
;; :ensure t
;; :init
;; ((defconst clojure--prettify-symbols-alist
;; '(("fn" . ?λ)
;; {"__" . ?⁈)))
;; :config
;; (add-hook 'clojure-mode-hook 'global-prettify-symbols-mode))
(use-package clojure-mode
:config
(define-clojure-indent
(defroutes 'defun)
(GET 2)
(POST 2)
(PUT 2)
(DELETE 2)
(HEAD 2)
(ANY 2)
(context 2)))
(use-package color-identifiers-mode
:ensure t
:init
(add-hook 'clojure-mode-hook 'color-identifiers-mode))
(use-package cider
:ensure t
:commands (cider cider-connect cider-jack-in)
:init
(setq cider-auto-select-error-buffer t
cider-repl-pop-to-buffer-on-connect nil
cider-repl-use-clojure-font-lock t
cider-repl-wrap-history t
cider-repl-history-size 1000
cider-show-error-buffer t
nrepl-hide-special-buffers t
;; Stop error buffer from popping up while working in buffers other than the REPL:
nrepl-popup-stacktraces nil)
(add-hook 'cider-mode-hook 'cider-turn-on-eldoc-mode)
(add-hook 'cider-mode-hook 'company-mode)
(add-hook 'cider-repl-mode-hook 'paredit-mode)
(add-hook 'cider-repl-mode-hook 'superword-mode)
(add-hook 'cider-repl-mode-hook 'company-mode)
(add-hook 'cider-test-report-mode 'jcf-soft-wrap)
(bind-key "C-x C-e" 'cider-eval-last-sexp clojure-mode-map)
(bind-key "C-c C-v" 'cider-send-and-evaluate-sexp)
:config
(use-package slamhound))
(defun paredit-delete-indentation (&optional arg)
"Handle joining lines that end in a comment."
(interactive "*P")
(let (comt)
(save-excursion
(move-beginning-of-line (if arg 1 0))
(when (skip-syntax-forward "^<" (point-at-eol))
(setq comt (delete-and-extract-region (point) (point-at-eol)))))
(delete-indentation arg)
(when comt
(save-excursion
(move-end-of-line 1)
(insert " ")
(insert comt)))))
(defun paredit-remove-newlines ()
"Removes extras whitespace and newlines from the current point
to the next parenthesis."
(interactive)
(let ((up-to (point))
(from (re-search-forward "[])}]")))
(backward-char)
(while (> (point) up-to)
(paredit-delete-indentation))))
(use-package paredit
:bind ("M-^" . paredit-delete-indentation)
:bind ("C-^" . paredit-remove-newlines)
:init
(add-hook 'clojure-mode-hook 'paredit-mode))
(defun cider-send-and-evaluate-sexp ()
"Sends the s-expression located before the point or the active
region to the REPL and evaluates it. Then the Clojure buffer is
activated as if nothing happened."
(interactive)
(if (not (region-active-p))
(cider-insert-last-sexp-in-repl)
(cider-insert-in-repl
(buffer-substring (region-beginning) (region-end)) nil))
(cider-switch-to-repl-buffer)
(cider-repl-closing-return)
(cider-switch-to-last-clojure-buffer)
(message ""))
(use-package ob-clojure
:init
(setq org-babel-clojure-backend 'cider))
(use-package clj-refactor
:ensure t
:init
(add-hook 'clojure-mode-hook 'clj-refactor-mode)
:config
;; Configure the Clojure Refactoring prefix:
(cljr-add-keybindings-with-prefix "C-c .")
:diminish clj-refactor-mode)
(use-package hydra
:ensure t
:config
(defhydra hydra-clojure-docs (clojure-mode-map "C-c d" :color blue)
"Clojure Documentation"
("f" cider-code "functional")
("g" cider-grimoire "grimoire")
("w" cider-grimoire-web "web examples")
("c" clojure-cheatsheet "cheatsheet")
("d" dash-at-point "dash")))
(defun ha-file-to-string (file)
"Read the contents of FILE and return as a string."
(with-temp-buffer
(insert-file-contents file)
(buffer-substring-no-properties (point-min) (point-max))))
(defun ha-string-to-file (string file)
(interactive "sEnter the string: \nFFile to save to: ")
(with-temp-file file
(insert string)))
(defun ha-file-to-list (file)
"Return a list of lines in FILE."
(split-string (ha-file-to-string file) "\n" t))
(provide 'init-clojure)
;;; init-clojure.el ends here