 ;;   (evil-lisp))
 ;; (use-package! slime)
 
+(map! :localleader
+      :map clojure-mode-map
+      :desc "Eval defun at mark"
+      "e f" (lambda () (interactive)
+              (call-interactively 'my-cider-eval-at-mark))
+
+      :desc "Set eval mark"
+      "e m" (lambda () (interactive)
+              (call-interactively 'my-cider-mark-eval-point)))
+
+;; A custom shortcut to mark and eval a region of code
+;; to eval from anywhere on the same file.
+(defvar my-cider-mark-char 248)
+
+(defun my-cider-mark-eval-point ()
+  (interactive)
+  (evil-set-marker my-cider-mark-char))
+
+(defun my-cider-eval-at-mark ()
+  (interactive)
+  (cider-eval-defun-at-point)
+  (save-excursion
+    (evil-goto-mark-line my-cider-mark-char)
+    ;;(cider-eval-last-sexp)
+    (cider-eval-defun-at-point)))
+
 ;; -- Keybindings --
-
 (map! :localleader
       :map rust-mode-map
 

;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
(setq doom-font (font-spec :family "Iosevka" :size 22 :weight 'semi-light)
      doom-variable-pitch-font (font-spec :family "Iosevka" :size 20))
                                        ; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
                                        ;       doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))

(setq-default line-spacing 0)


(add-hook 'fennel-mode-hook 'my-sexp-register-paredit-keybindings)
(add-hook 'racket-mode-hook 'my-sexp-register-paredit-keybindings)


;; (add-hook 'lisp-mode-hook #'rainbow-delimiters-mode)
;; (add-hook 'lisp-mode-hook #'evil-paredit-mode)

