diff options
Diffstat (limited to 'emacs/.config/emacs/lisp/kj-development.el')
-rw-r--r-- | emacs/.config/emacs/lisp/kj-development.el | 58 |
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) |