tvl-depot/emacs/.emacs.d/wpc/wpc-clojure.el
William Carroll d1ee517461 Require general.el for packages that depend on it
Since I'm calling `(require 'general)` in `wpc-package.el`, which gets called at
the beginning of my `init.el` file, all sub-modules have `general`. I originally
wanted this, but I'm beginning to rethink that preference.

After `script.el` broke my CI because of a missing `general` dependency, I'm
fixing it for `buffer.el` and all other modules that consume `general`.
2020-09-02 15:01:43 +01:00

72 lines
2.2 KiB
EmacsLisp

;;; wpc-clojure.el --- My Clojure preferences -*- lexical-binding: t -*-
;; Author: William Carroll <wpcarro@gmail.com>
;; Version: 0.0.1
;; URL: https://git.wpcarro.dev/wpcarro/briefcase
;; Package-Requires: ((emacs "25.1"))
;;; Commentary:
;; Hosting my Clojure tooling preferences
;;; Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Dependencies
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'general)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Configuration
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-package clojure-mode
:config
;; from Ryan Schmukler:
(setq cljr-magic-require-namespaces
'(("io" . "clojure.java.io")
("sh" . "clojure.java.shell")
("jdbc" . "clojure.java.jdbc")
("set" . "clojure.set")
("time" . "java-time")
("str" . "cuerdas.core")
("path" . "pathetic.core")
("walk" . "clojure.walk")
("zip" . "clojure.zip")
("async" . "clojure.core.async")
("component" . "com.stuartsierra.component")
("http" . "clj-http.client")
("url" . "cemerick.url")
("sql" . "honeysql.core")
("csv" . "clojure.data.csv")
("json" . "cheshire.core")
("s" . "clojure.spec.alpha")
("fs" . "me.raynes.fs")
("ig" . "integrant.core")
("cp" . "com.climate.claypoole")
("re-frame" . "re-frame.core")
("rf" . "re-frame.core")
("re" . "reagent.core")
("reagent" . "reagent.core")
("u.core" . "utopia.core")
("gen" . "clojure.spec.gen.alpha"))))
(use-package cider
:config
(general-define-key
:keymaps 'cider-repl-mode-map
"C-l" #'cider-repl-clear-buffer
"C-u" #'kill-whole-line
"<up>" #'cider-repl-previous-input
"<down>" #'cider-repl-next-input)
(general-define-key
:keymaps 'clojure-mode-map
:states '(normal)
:prefix "<SPC>"
"x" #'cider-eval-defun-at-point
"X" #'cider-eval-buffer
"d" #'cider-symbol-at-point)
(setq cider-prompt-for-symbol nil))
(provide 'wpc-clojure)
;;; wpc-clojure.el ends here