Z3ALV46TWXGAUOXZXRFE6RCH66NCJ7GVNS43TYWXWN24TA5JVHCQC
DMVJE4YKX7MTDD7UBEEJHNJW3HNMPI6XSKNXJW2XTFHYLSXOJVIAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
IOXOZB2VUXVUEINLFBT4SPSJV32X5ZFT5FKSVRAIEXEFQJLG6MHQC
BWGNLG4PJFLOW4GDWTXIE46CQT5DKZOZZKCDJ5AQI3Y6VBJRY3YQC
IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC
2GNS6EEXJ7EEZWESALVQ2QOGEVWOEE4VC6HOKCLL7UTEPFACJYKQC
Z52JJYAJTTGPLIRJ52WJLMLS6Y2TK3T47WERVXGUB7LL2DUCPT7QC
G4ZTZQYD5K6LXCC2TYN7RP6XTTIYBCPLOQCVPUNX56RYHKXLX7YQC
F3ENAOSOVGL4WEGHDMXC7MHRZK2Q4M35YYW433N2ABZ6S3SU4AAQC
IUA6MCZWWCFQ4EJ4GBWYAPLM4IE7SFB34CGSJJTBVOAFTSL4EDEAC
HYWL3DRCGDQHQPSW5ZSLUWK7XTYKN7SXPTA6OFVX2BSF7YPOCEDQC
5FLRDDUAB7NCOKJKK57IVQBETGX7JTT7GVKFT46ORSZ7OJ7Q2UFQC
YXDBKG5MWREH25GV2RUUW7ZI4P2XBNMZSB77WND3A6LUAL4NN63QC
LTCK5KZE6YIKQ5BOD5SJ7OUVD63P7AV7TN7EJZ6CWNFCT3VIUVCAC
RGFDOFKTNGGWWOX7GBFWVQ5QXLESD362GRYYBCLDB3KYWYPP6QHQC
UIXIJMKKE7STQ65EALHSRFO7J64YCRPRQOQRAX7FJ27455W4X3WAC
EEDP7EJG66AFQBOD62VHUAH5XPQTOPN5NCI4S27P5JSFLE7V57BAC
7F7T4E5VD2K7I2YRWYPP7EFJTAII5O6LCXDZ3JDXCVOEBJK7HSJQC
LA4734RIK7CSKUNJCTCI2KCBPNOKELRXVTW6HEPWY65LSYSA3CWAC
(defun fwoar/cider-hook-base ()
(flycheck-mode)
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion))
(defun fwoar/cider-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 1))
(defun fwoar/cider-repl-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 0))
(defun fwoar/cider-eval-expression-at-point-in-repl ()
(interactive)
(let ((form (cider-defun-at-point)))
;; Strip excess whitespace
(while (string-match "\\`\s+\\|\n+\\'" form)
(setq form (replace-match "" t t form)))
(with-current-buffer (cider-current-repl nil t)
(let ((fw/window (get-buffer-window)))
(with-selected-window fw/window
(end-of-buffer)
(insert form)
(cider-repl-return)
(end-of-buffer))))))
(use-package cider
:ensure t
:config
(require 'cider-selector)
(define-key evil-normal-state-map " t" 'cider-test-run-ns-tests)
(evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos)
(def-cider-selector-method ?S "find clojure project file"
(fwoar--find-system))
(add-hook 'cider-mode-hook 'fwoar/cider-hook)
(add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook)
(modify-syntax-entry ?: "w" clojure-mode-syntax-table)
(modify-syntax-entry ?_ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?- "w" clojure-mode-syntax-table)
(modify-syntax-entry ?~ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?. "w" clojure-mode-syntax-table)
(define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer)
(define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output)
(setq cider-save-file-on-load t
cider-repl-history-file "~/.emacs.d/cider-history.clj")
(define-key cider-mode-map
(kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl))
(use-package flycheck-clj-kondo
:ensure t)
(defun fwoar/cider-hook-base ()
(flycheck-mode)
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion))
(defun fwoar/cider-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 1))
(defun fwoar/cider-repl-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 0))
(defun fwoar/cider-eval-expression-at-point-in-repl ()
(interactive)
(let ((form (cider-defun-at-point)))
;; Strip excess whitespace
(while (string-match "\\`\s+\\|\n+\\'" form)
(setq form (replace-match "" t t form)))
(with-current-buffer (cider-current-repl nil t)
(let ((fw/window (get-buffer-window)))
(with-selected-window fw/window
(end-of-buffer)
(insert form)
(cider-repl-return)
(end-of-buffer))))))
(use-package cider
:ensure t
:config
(require 'cider-selector)
(define-key evil-normal-state-map " t" 'cider-test-run-ns-tests)
(evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos)
(def-cider-selector-method ?S "find clojure project file"
(fwoar--find-system))
(add-hook 'cider-mode-hook 'fwoar/cider-hook)
(add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook)
(modify-syntax-entry ?: "w" clojure-mode-syntax-table)
(modify-syntax-entry ?_ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?- "w" clojure-mode-syntax-table)
(modify-syntax-entry ?~ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?. "w" clojure-mode-syntax-table)
(define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer)
(define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output)
(setq cider-save-file-on-load t
cider-repl-history-file "~/.emacs.d/cider-history.clj")
(define-key cider-mode-map
(kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl))
(use-package clj-refactor
:after cider
:ensure t
:config
(evil-define-key 'normal clojure-mode-map (kbd "SPC r") 'hydra-cljr-toplevel-form-menu/body))
(use-package helm-cider
:after cider helm
:ensure t)
(use-package flycheck-clj-kondo
:after flycheck
:ensure t)
(defun find-clojure-project-file ()
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(or (directory-files n nil "project.clj")
(directory-files n nil "build.boot")
(directory-files n nil "deps.edn")
(directory-files n nil "shadow-cljs.edn"))))
t "^\\(project.clj\\|build.boot\\|deps.edn\\|shadow-cljs.edn\\)$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode clojure-mode)))
(find-clojure-project-file))
(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode cider-repl-mode)))
(find-clojure-project-file))
(defmethod fwoar--pl-selector (&context (major-mode clojure-mode))
(cider-selector))
(defmethod fwoar--pl-selector (&context (projectile-project-type (eql :clojure)))
(cider-selector))
(defmethod fwoar--pl-selector (&context (major-mode cider-repl-mode))
(cider-selector))
(cl-defmethod fwoar--find-system (&context (major-mode clojure-mode))
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(or (directory-files n nil "project.clj")
(directory-files n nil "build.boot")
(directory-files n nil "deps.edn")
(directory-files n nil "shadow-cljs.edn"))))
t "^\\(project.clj\\|build.boot\\|deps.edn\\|shadow-cljs.edn\\)$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(:method (&context (major-mode clojure-mode))
(cider-selector))
(:method (&context (projectile-project-type (eql :clojure)))
(cider-selector))
(:method (&context (major-mode cider-repl-mode))
(cider-selector)))
(use-package cider
:ensure t
:config
(require 'cider-selector)
(define-key evil-normal-state-map " t" 'cider-test-run-ns-tests)
(evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos)
(def-cider-selector-method ?S "find clojure project file"
(fwoar--find-system))
(add-hook 'cider-mode-hook
(lambda ()
(flycheck-mode)
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(aggressive-indent-mode 1)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion)))
(add-hook 'cider-repl-mode-hook
(lambda ()
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(aggressive-indent-mode 0)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion)))
(modify-syntax-entry ?_ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?- "w" clojure-mode-syntax-table)
(modify-syntax-entry ?~ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?. "w" clojure-mode-syntax-table)
(define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer)
(define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output)
(setq cider-save-file-on-load t
cider-repl-history-file "~/.emacs.d/cider-history.clj")
(defun cider-eval-expression-at-point-in-repl ()
(interactive)
(let ((form (cider-defun-at-point)))
;; Strip excess whitespace
(while (string-match "\\`\s+\\|\n+\\'" form)
(setq form (replace-match "" t t form)))
(with-current-buffer (cider-current-repl nil t)
(let ((fw/window (get-buffer-window)))
(with-selected-window fw/window
(end-of-buffer)
(insert form)
(cider-repl-return)
(end-of-buffer))))))
(define-key cider-mode-map
(kbd "C-c C-j") 'cider-eval-expression-at-point-in-repl)
;; https://github.com/clojure-emacs/cider/issues/2435
(defun cider--gather-session-params (session)
"Gather all params for a SESSION."
(let (params)
(dolist (repl (cdr session))
(when (buffer-name repl)
(setq params (cider--gather-connect-params params repl))))
(when-let* ((server (cider--session-server session)))
(setq params (cider--gather-connect-params params server)))
params))
)
(use-package flycheck-clj-kondo
:ensure t)
(defvar *fwoar-git-repos*
(file-name-as-directory
(expand-file-name (car (file-expand-wildcards "~/git*_repos"))
"~")))
(use-package browse-at-remote
:after magit
:ensure t
:config (push (cons "gitlab.cj.com" "gitlab")
browse-at-remote-remote-type-domains))
(defun fwoar-git-repo (name ssh-remote http-remote)
(let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*))))
(unless (file-exists-p dir-name)
(ecase fwoar-git-mode
(:ssh (magit-run-git-with-input "clone" ssh-remote dir-name))
(:http (magit-run-git-with-input "clone" http-remote dir-name))))
dir-name))
(eval-and-compile
(defvar *fwoar-git-repos*
(file-name-as-directory
(expand-file-name (car (file-expand-wildcards "~/git*_repos"))
"~"))))
(eval-and-compile
(defun fwoar-git-repo (name ssh-remote http-remote)
(let ((dir-name (file-name-as-directory (expand-file-name name *fwoar-git-repos*))))
(unless (file-exists-p dir-name)
(ecase fwoar-git-mode
(:ssh (magit-run-git-with-input "clone" ssh-remote dir-name))
(:http (magit-run-git-with-input "clone" http-remote dir-name))))
dir-name)))
(defun fwoar/cider-hook-base ()
(flycheck-mode)
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion))
(defun fwoar/cider-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 1))
(defun fwoar/cider-repl-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 0))
(defun fwoar/cider-eval-expression-at-point-in-repl ()
(interactive)
(let ((form (cider-defun-at-point)))
;; Strip excess whitespace
(while (string-match "\\`\s+\\|\n+\\'" form)
(setq form (replace-match "" t t form)))
(with-current-buffer (cider-current-repl nil t)
(let ((fw/window (get-buffer-window)))
(with-selected-window fw/window
(end-of-buffer)
(insert form)
(cider-repl-return)
(end-of-buffer))))))
(use-package cider
:ensure t
:config
(require 'cider-selector)
(define-key evil-normal-state-map " t" 'cider-test-run-ns-tests)
(evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos)
(def-cider-selector-method ?S "find clojure project file"
(fwoar--find-system))
(add-hook 'cider-mode-hook 'fwoar/cider-hook)
(add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook)
(modify-syntax-entry ?: "w" clojure-mode-syntax-table)
(modify-syntax-entry ?_ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?- "w" clojure-mode-syntax-table)
(modify-syntax-entry ?~ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?. "w" clojure-mode-syntax-table)
(define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer)
(define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output)
(setq cider-save-file-on-load t
cider-repl-history-file "~/.emacs.d/cider-history.clj")
(define-key cider-mode-map
(kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl))
(use-package flycheck-clj-kondo
:ensure t)
(defun fwoar/cider-hook-base ()
(flycheck-mode)
(rainbow-delimiters-mode 1)
(evil-smartparens-mode 1)
(smartparens-strict-mode 1)
(helm-cider-mode 1)
(cider-company-enable-fuzzy-completion))
(defun fwoar/cider-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 1))
(defun fwoar/cider-repl-hook ()
(fwoar/cider-hook-base)
(aggressive-indent-mode 0))
(defun fwoar/cider-eval-expression-at-point-in-repl ()
(interactive)
(let ((form (cider-defun-at-point)))
;; Strip excess whitespace
(while (string-match "\\`\s+\\|\n+\\'" form)
(setq form (replace-match "" t t form)))
(with-current-buffer (cider-current-repl nil t)
(let ((fw/window (get-buffer-window)))
(with-selected-window fw/window
(end-of-buffer)
(insert form)
(cider-repl-return)
(end-of-buffer))))))
(use-package cider
:ensure t
:config
(require 'cider-selector)
(define-key evil-normal-state-map " t" 'cider-test-run-ns-tests)
(evil-define-key 'normal clojure-mode-map " '" 'helm-cider-apropos)
(def-cider-selector-method ?S "find clojure project file"
(fwoar--find-system))
(add-hook 'cider-mode-hook 'fwoar/cider-hook)
(add-hook 'cider-repl-mode-hook 'fwoar/cider-repl-hook)
(modify-syntax-entry ?: "w" clojure-mode-syntax-table)
(modify-syntax-entry ?_ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?- "w" clojure-mode-syntax-table)
(modify-syntax-entry ?~ "w" clojure-mode-syntax-table)
(modify-syntax-entry ?. "w" clojure-mode-syntax-table)
(define-key cider-repl-mode-map (kbd "C-c M-o") 'cider-repl-clear-buffer)
(define-key cider-repl-mode-map (kbd "C-c C-o") 'cider-repl-clear-output)
(setq cider-save-file-on-load t
cider-repl-history-file "~/.emacs.d/cider-history.clj")
(define-key cider-mode-map
(kbd "C-c C-j") 'fwoar/cider-eval-expression-at-point-in-repl))
(use-package clj-refactor
:after cider
:ensure t
:config
(evil-define-key 'normal clojure-mode-map (kbd "SPC r") 'hydra-cljr-toplevel-form-menu/body))
(use-package helm-cider
:after cider helm
:ensure t)
(use-package flycheck-clj-kondo
:after flycheck
:ensure t)
(defun find-clojure-project-file ()
(let ((systems (directory-files
(locate-dominating-file default-directory
(lambda (n)
(or (directory-files n nil "project.clj")
(directory-files n nil "build.boot")
(directory-files n nil "deps.edn")
(directory-files n nil "shadow-cljs.edn"))))
t "^\\(project.clj\\|build.boot\\|deps.edn\\|shadow-cljs.edn\\)$")))
(find-file (if (not (null (cdr systems)))
(helm-comp-read "system:" systems)
(car systems)))))
(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode clojure-mode)))
(find-clojure-project-file))
(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode cider-repl-mode)))
(find-clojure-project-file))
(defmethod fwoar--pl-selector (&context (major-mode clojure-mode))
(cider-selector))
(defmethod fwoar--pl-selector (&context (projectile-project-type (eql :clojure)))
(cider-selector))
(defmethod fwoar--pl-selector (&context (major-mode cider-repl-mode))
(cider-selector))