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.el58
1 files changed, 52 insertions, 6 deletions
diff --git a/emacs/.config/emacs/lisp/kj-development.el b/emacs/.config/emacs/lisp/kj-development.el
index aefba85..46e726b 100644
--- a/emacs/.config/emacs/lisp/kj-development.el
+++ b/emacs/.config/emacs/lisp/kj-development.el
@@ -5,12 +5,26 @@
:config
(setq eglot-events-buffer-size 0))
+(use-package with-editor
+ :hook ((shell-mode . with-editor-export-editor)))
+
+(use-package puni
+ :defer t
+ :init
+ (puni-global-mode)
+ (electric-pair-mode 1)
+ :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
@@ -97,8 +111,8 @@
(use-package yaml-mode
:mode "\\.\(yml|yaml\)\\'")
-;; (use-package ansi-color
-;; :hook (compilation-filter . ansi-color-compilation-filter))
+(use-package ansi-color :elpaca nil
+ :hook (compilation-filter . ansi-color-compilation-filter))
(use-package diff-hl
:config
@@ -116,8 +130,40 @@
(use-package ess)
-(use-package sly
- :custom
- (inferior-lisp-program "sbcl"))
+;; (use-package sly
+;; :custom
+;; (inferior-lisp-program "sbcl"))
+
+(use-package emacs :elpaca nil
+ :defer 1
+ :after consult
+ :init
+ (when-let ((slime-helper (expand-file-name "~/.cache/quicklisp/slime-helper.el"))
+ ((file-exists-p slime-helper)))
+ (load slime-helper)
+ (setopt inferior-lisp-program "sbcl")
+ (defvar kj/slime-history-ring nil)
+ (defvar kj/slime-history-index nil)
+ (add-to-list 'consult-mode-histories
+ '(slime-repl-mode slime-repl-input-history
+ slime-repl-input-history-position
+ beginning-of-line))
+ (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)