# HG changeset patch # User Richard Westhaver # Date 1727132043 14400 # Node ID c687d7005ec75a6c9bcc833dc02d76ab2eaff027 # Parent bb8aa1eda12bd604249fd3f4749bc3b46791325b add slime-repl-ansi-color diff -r bb8aa1eda12b -r c687d7005ec7 emacs/default.el --- a/emacs/default.el Mon Sep 23 17:03:54 2024 -0400 +++ b/emacs/default.el Mon Sep 23 18:54:03 2024 -0400 @@ -224,7 +224,6 @@ ;;; Lisp (use-package company :ensure t) -(use-package slime-repl-ansi-color :ensure t) (defvar slime-toggle nil) (defun slime-toggle () @@ -243,10 +242,10 @@ (use-package slime :ensure t - :after (slime-repl-ansi-color) - :init + :config (require 'slime-company "slime-company") (require 'slime-cape "slime-cape") + (require 'slime-repl-ansi-color "slime-repl-ansi-color") (setq slime-contribs '(slime-fancy slime-quicklisp slime-hyperdoc @@ -269,9 +268,7 @@ slime-asdf)) (put 'make-instance 'common-lisp-indent-function 1) (put 'reinitialize-instance 'common-lisp-indent-function 1) - (slime-repl-ansi-color-init) - (slime-cape-init) - (slime-setup) + (slime-setup slime-contribs) ;; X11-only (mcclim requires clx) (defun clouseau-inspect (string) "Inspect a lisp value with Clouseau. make sure to load clouseau diff -r bb8aa1eda12b -r c687d7005ec7 emacs/lib/slime-repl-ansi-color.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emacs/lib/slime-repl-ansi-color.el Mon Sep 23 18:54:03 2024 -0400 @@ -0,0 +1,36 @@ +;;; lib/slime-repl-ansi-color.el --- https://github.com/deadtrickster/slime-repl-ansi-color -*- lexical-binding: t -*- +(require 'ansi-color) + +(define-slime-contrib slime-repl-ansi-color + "Turn on ANSI colors in REPL output" + (:authors "Max Mikhanosha") + (:license "GPL") + (:slime-dependencies slime-repl) + (:on-load + (add-hook 'slime-repl-mode-hook + (lambda () + (slime-repl-ansi-on))))) + +(defvar slime-repl-ansi-color nil + "When Non-NIL will process ANSI colors in the lisp output") + +(make-variable-buffer-local 'slime-repl-ansi-color) + +(defun slime-repl-ansi-on () + "Set `ansi-color-for-comint-mode' to t." + (interactive) + (setq slime-repl-ansi-color t)) + +(defun slime-repl-ansi-off () + "Set `ansi-color-for-comint-mode' to t." + (interactive) + (setq slime-repl-ansi-color nil)) + +(defadvice slime-repl-emit (around slime-repl-ansi-colorize activate compile) + (with-current-buffer (slime-output-buffer) + (let ((start slime-output-start)) + (setq ad-return-value ad-do-it) + (when slime-repl-ansi-color + (ansi-color-apply-on-region start slime-output-end))))) + +(provide 'slime-repl-ansi-color)