summaryrefslogtreecommitdiff
path: root/emacs/.config/emacs/lisp/kj-development.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.config/emacs/lisp/kj-development.el')
-rw-r--r--emacs/.config/emacs/lisp/kj-development.el41
1 files changed, 38 insertions, 3 deletions
diff --git a/emacs/.config/emacs/lisp/kj-development.el b/emacs/.config/emacs/lisp/kj-development.el
index aefba85..8db2225 100644
--- a/emacs/.config/emacs/lisp/kj-development.el
+++ b/emacs/.config/emacs/lisp/kj-development.el
@@ -5,12 +5,22 @@
:config
(setq eglot-events-buffer-size 0))
+(use-package puni
+ :defer t
+ :init
+ (puni-global-mode)
+ :config
+ (keymap-set puni-mode-map "C-w" nil)
+ :bind
+ (("C-<right>" . puni-slurp-forward)
+ ("C-<left>" . puni-slurp-backward)))
+
(add-hook 'prog-mode-hook 'subword-mode)
;; Only used to get better eglot snippets.
(use-package yasnippet
:config
- (add-to-list 'yas-snippet-dirs (expand-file-name "yasnippets" user-emacs-directory))
+ ;;(add-to-list 'yas-snippet-dirs (expand-file-name "yasnippets" user-emacs-directory))
(yas-global-mode))
(use-package tempel
@@ -116,8 +126,33 @@
(use-package ess)
-(use-package sly
+;; (use-package sly
+;; :custom
+;; (inferior-lisp-program "sbcl"))
+
+(use-package slime
:custom
- (inferior-lisp-program "sbcl"))
+ (inferior-lisp-program "sbcl")
+ :config
+ (load (expand-file-name "~/.cache/quicklisp/slime-helper.el"))
+ ;; Replace "sbcl" with the path to your implementation
+ (setq inferior-lisp-program "sbcl")
+ (slime-setup '(slime-fancy slime-asdf)))
+
+(use-package exercism)
+(defun kj/run-exercism-test ()
+ (interactive)
+ (let* ((directory default-directory)
+ (exercise
+ (and (string-match (rx (* anychar) "/" (group (+ (not "/"))) "/" eol)
+ directory)
+ (match-string 1 directory)))
+ (test-file (concat directory exercise "-test.lisp")))
+ (unless (file-exists-p test-file)
+ (error "Not found: %s" test-file))
+ (slime-switch-to-output-buffer)
+ (slime-cd directory)
+ (slime-load-file test-file)
+ (slime-eval (list (intern (concat exercise "-test:run-tests"))))))
(provide 'kj-development)