From 56d43a93be138facdb0db96631415fbfcbdb6bda Mon Sep 17 00:00:00 2001 From: teesloane Date: Fri, 3 Nov 2017 13:41:54 -0400 Subject: [PATCH 01/12] Add cljs mode and localleader keybindings --- modules/lang/clojure/config.el | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 5d90ae371..1f5d0ad44 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -1,9 +1,17 @@ ;;; lang/clojure/config.el -*- lexical-binding: t; -*- (def-package! clojure-mode - :mode "\\.clj$") + :mode (("\\.clj$" . clojure-mode) + ("\\.cljs$". clojurescript-mode)) + :commands (clojure-mode clojurescript-mode) ;; this might not be necessary + :config + (map! :map clojure-mode-map + (:localleader + "'" #'cider-jack-in + "\"" #'cider-jack-in-clojurescript + "r" #'cider-eval-region))) (def-package! cider - :commands (cider-jack-in cider-mode) + :commands (cider-jack-in cider-mode cider-jack-in-clojurescript) :config (setq nrepl-hide-special-buffers t)) From d217db853992fca9d0437e22fc863897107d44e6 Mon Sep 17 00:00:00 2001 From: teesloane Date: Fri, 3 Nov 2017 16:03:20 -0400 Subject: [PATCH 02/12] more keybindings --- modules/lang/clojure/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 1f5d0ad44..cda05b6c4 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -9,6 +9,8 @@ (:localleader "'" #'cider-jack-in "\"" #'cider-jack-in-clojurescript + "b" #'cider-switch-to-repl-buffer + "n" #'cider-repl-switch-ns "r" #'cider-eval-region))) (def-package! cider From feb75751bfe50b137ad7012c9f7b05dff97207d3 Mon Sep 17 00:00:00 2001 From: teesloane Date: Fri, 3 Nov 2017 19:28:05 -0400 Subject: [PATCH 03/12] Add figwheel settings + try and unshackle the repl (no luck yet!) --- modules/lang/clojure/config.el | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index cda05b6c4..64a6aae25 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -3,17 +3,28 @@ (def-package! clojure-mode :mode (("\\.clj$" . clojure-mode) ("\\.cljs$". clojurescript-mode)) - :commands (clojure-mode clojurescript-mode) ;; this might not be necessary + :commands (clojure-mode clojurescript-mode) ;; this might not be necessary? :config (map! :map clojure-mode-map (:localleader "'" #'cider-jack-in "\"" #'cider-jack-in-clojurescript "b" #'cider-switch-to-repl-buffer - "n" #'cider-repl-switch-ns + "n" #'cider-repl-set-ns "r" #'cider-eval-region))) + (def-package! cider + ;; BUG: if you don't have an org directory set (the dir doesn't exist), cider jack in won't work. :commands (cider-jack-in cider-mode cider-jack-in-clojurescript) :config - (setq nrepl-hide-special-buffers t)) + (setq nrepl-hide-special-buffers t) + + ;; TODO: figure out how to set cider to the right window rather than shackle window (https://github.com/hlissner/doom-emacs/issues/171) + ;; (set! :popup "^\\*cider-.*" :align 'left :noesc t) ;; no luck + + ;; Setup cider for clojurescript / figwheel dev. + (setq cider-cljs-lein-repl + "(do (require 'figwheel-sidecar.repl-api) + (figwheel-sidecar.repl-api/start-figwheel!) + (figwheel-sidecar.repl-api/cljs-repl))")) From acded8c533b805e5cb5c4370f47791b086741e26 Mon Sep 17 00:00:00 2001 From: teesloane Date: Sat, 18 Nov 2017 14:54:05 -0500 Subject: [PATCH 04/12] Add clj refactor --- modules/lang/clojure/config.el | 15 ++++++++++----- modules/lang/clojure/packages.el | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 64a6aae25..3d2feb1b1 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -5,13 +5,18 @@ ("\\.cljs$". clojurescript-mode)) :commands (clojure-mode clojurescript-mode) ;; this might not be necessary? :config + (def-package! clj-refactor :demand t) ;; prob a better way to do this + (map! :map clojure-mode-map (:localleader - "'" #'cider-jack-in - "\"" #'cider-jack-in-clojurescript - "b" #'cider-switch-to-repl-buffer - "n" #'cider-repl-set-ns - "r" #'cider-eval-region))) + :n "'" #'cider-jack-in + :n "\"" #'cider-jack-in-clojurescript + :n "b" #'cider-switch-to-repl-buffer + :n "n" #'cider-repl-set-ns + :n "j" #'cider-find-var + :n "d" #'cider-doc + :n "c" #'cider-repl-clear-buffer + :n "r" #'cider-eval-region))) (def-package! cider diff --git a/modules/lang/clojure/packages.el b/modules/lang/clojure/packages.el index bc69c2464..a61dc39ed 100644 --- a/modules/lang/clojure/packages.el +++ b/modules/lang/clojure/packages.el @@ -2,4 +2,5 @@ ;;; lang/clojure/packages.el (package! cider) +(package! clj-refactor) From c10b01ba6544db7511249222eaed2cdb178dfc95 Mon Sep 17 00:00:00 2001 From: teesloane Date: Tue, 21 Nov 2017 13:25:00 -0500 Subject: [PATCH 05/12] name space auto completion --- modules/lang/clojure/config.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 3d2feb1b1..c7b274fb2 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -5,7 +5,15 @@ ("\\.cljs$". clojurescript-mode)) :commands (clojure-mode clojurescript-mode) ;; this might not be necessary? :config - (def-package! clj-refactor :demand t) ;; prob a better way to do this + + (def-package! clj-refactor ;; prob a better place to do this...using hooks? + :demand t + :config + ;; setup some extra namespace auto completion for great awesome + (dolist (mapping '(("re-frame" . "re-frame.core") + ("reagent" . "reagent.core") + ("str" . "clojure.str"))) + (add-to-list 'cljr-magic-require-namespaces mapping t))) (map! :map clojure-mode-map (:localleader From bf9eb0355879b494ebe580dfc034df9f7c64410b Mon Sep 17 00:00:00 2001 From: teesloane Date: Fri, 24 Nov 2017 14:45:16 -0500 Subject: [PATCH 06/12] add rainbow delimiters when loading clojure mode --- modules/lang/clojure/config.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index c7b274fb2..6dae3aadb 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -6,6 +6,8 @@ :commands (clojure-mode clojurescript-mode) ;; this might not be necessary? :config + (rainbow-delimiters-mode-enable) + (def-package! clj-refactor ;; prob a better place to do this...using hooks? :demand t :config From 9317c9bc3913aed5550ab3d0adcf2052b5e785c5 Mon Sep 17 00:00:00 2001 From: teesloane Date: Sun, 26 Nov 2017 17:26:24 -0500 Subject: [PATCH 07/12] fix broken clj --- modules/lang/clojure/config.el | 3 +-- modules/org/org/config.el | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 6dae3aadb..5efd20c70 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -3,10 +3,9 @@ (def-package! clojure-mode :mode (("\\.clj$" . clojure-mode) ("\\.cljs$". clojurescript-mode)) - :commands (clojure-mode clojurescript-mode) ;; this might not be necessary? + :commands (clojure-mode clojurescript-mode) :config - (rainbow-delimiters-mode-enable) (def-package! clj-refactor ;; prob a better place to do this...using hooks? :demand t diff --git a/modules/org/org/config.el b/modules/org/org/config.el index dcb041d27..b6e217224 100644 --- a/modules/org/org/config.el +++ b/modules/org/org/config.el @@ -6,7 +6,7 @@ (push (file-name-directory path) load-path)) ;; Custom variables -(defvar +org-dir (expand-file-name "~/work/org/") +(defvar +org-dir (expand-file-name "~/Dropbox/notes/") "The directory where org files are kept.") (defvaralias 'org-directory '+org-dir) From 9f078d5f1e00e4eee1e7b91252befafec299ab7a Mon Sep 17 00:00:00 2001 From: teesloane Date: Mon, 27 Nov 2017 09:35:02 -0500 Subject: [PATCH 08/12] Reset org directory to original link. --- modules/org/org/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/org/org/config.el b/modules/org/org/config.el index b6e217224..dcb041d27 100644 --- a/modules/org/org/config.el +++ b/modules/org/org/config.el @@ -6,7 +6,7 @@ (push (file-name-directory path) load-path)) ;; Custom variables -(defvar +org-dir (expand-file-name "~/Dropbox/notes/") +(defvar +org-dir (expand-file-name "~/work/org/") "The directory where org files are kept.") (defvaralias 'org-directory '+org-dir) From af5d0d3e4bedacc4a8a5f0f748c52ec5313d1ae4 Mon Sep 17 00:00:00 2001 From: teesloane Date: Tue, 28 Nov 2017 19:29:37 -0500 Subject: [PATCH 09/12] Add eval at point to clojure mode --- modules/lang/clojure/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 5efd20c70..14e22a720 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -25,6 +25,7 @@ :n "j" #'cider-find-var :n "d" #'cider-doc :n "c" #'cider-repl-clear-buffer + :n "p" #'cider-eval-sexp-at-point :n "r" #'cider-eval-region))) From fd40dee579c8eebb45d3908c9a999c32bb5fab00 Mon Sep 17 00:00:00 2001 From: teesloane Date: Tue, 28 Nov 2017 19:37:34 -0500 Subject: [PATCH 10/12] Add eval buffer shortcut. --- modules/lang/clojure/config.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 14e22a720..969b75365 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -20,7 +20,8 @@ (:localleader :n "'" #'cider-jack-in :n "\"" #'cider-jack-in-clojurescript - :n "b" #'cider-switch-to-repl-buffer + :n "B" #'cider-switch-to-repl-buffer + :n "b" #'cider-eval-buffer :n "n" #'cider-repl-set-ns :n "j" #'cider-find-var :n "d" #'cider-doc From 26c16d431bf56c2b3d359503906adde5fa69f35f Mon Sep 17 00:00:00 2001 From: teesloane Date: Tue, 5 Dec 2017 09:58:46 -0500 Subject: [PATCH 11/12] PR review updates: fix repl, remove unidiomatic use-package things. --- modules/lang/clojure/config.el | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 969b75365..155739f33 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -3,19 +3,8 @@ (def-package! clojure-mode :mode (("\\.clj$" . clojure-mode) ("\\.cljs$". clojurescript-mode)) - :commands (clojure-mode clojurescript-mode) :config - - (def-package! clj-refactor ;; prob a better place to do this...using hooks? - :demand t - :config - ;; setup some extra namespace auto completion for great awesome - (dolist (mapping '(("re-frame" . "re-frame.core") - ("reagent" . "reagent.core") - ("str" . "clojure.str"))) - (add-to-list 'cljr-magic-require-namespaces mapping t))) - (map! :map clojure-mode-map (:localleader :n "'" #'cider-jack-in @@ -30,15 +19,25 @@ :n "r" #'cider-eval-region))) +(def-package! clj-refactor + :after clojure-mode + :config + + ;; setup some extra namespace auto completion for great awesome + (dolist (mapping '(("re-frame" . "re-frame.core") + ("reagent" . "reagent.core") + ("str" . "clojure.str"))) + (add-to-list 'cljr-magic-require-namespaces mapping t))) + + (def-package! cider - ;; BUG: if you don't have an org directory set (the dir doesn't exist), cider jack in won't work. + ;; NOTE: if you don't have an org directory set (the dir doesn't exist), cider jack in won't work. :commands (cider-jack-in cider-mode cider-jack-in-clojurescript) :config + (setq nrepl-hide-special-buffers t) - - ;; TODO: figure out how to set cider to the right window rather than shackle window (https://github.com/hlissner/doom-emacs/issues/171) - ;; (set! :popup "^\\*cider-.*" :align 'left :noesc t) ;; no luck - + ;; settings for cider repl as a popup (prevent it from being closed on escape, especially.) + (set! :popup '("^\\*cider" :regexp t :noselect t :autokill f :autoclose f :noesc t)) ;; Setup cider for clojurescript / figwheel dev. (setq cider-cljs-lein-repl "(do (require 'figwheel-sidecar.repl-api) From dd0d568694033988831604cc0e5f3409613ecb06 Mon Sep 17 00:00:00 2001 From: teesloane Date: Wed, 6 Dec 2017 13:56:16 -0500 Subject: [PATCH 12/12] Remove unecessary keywords in clojure popup config --- modules/lang/clojure/config.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/lang/clojure/config.el b/modules/lang/clojure/config.el index 155739f33..9db5be42d 100644 --- a/modules/lang/clojure/config.el +++ b/modules/lang/clojure/config.el @@ -36,8 +36,10 @@ :config (setq nrepl-hide-special-buffers t) + ;; settings for cider repl as a popup (prevent it from being closed on escape, especially.) - (set! :popup '("^\\*cider" :regexp t :noselect t :autokill f :autoclose f :noesc t)) + (set! :popup '("^\\*cider" :regexp t :noselect t :noesc t)) + ;; Setup cider for clojurescript / figwheel dev. (setq cider-cljs-lein-repl "(do (require 'figwheel-sidecar.repl-api)