changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: add slime-repl-ansi-color

changeset 668: c687d7005ec7
parent 667: bb8aa1eda12b
child 669: 3966d52b0b2f
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 23 Sep 2024 18:54:03 -0400
files: emacs/default.el emacs/lib/slime-repl-ansi-color.el
description: add slime-repl-ansi-color
     1.1--- a/emacs/default.el	Mon Sep 23 17:03:54 2024 -0400
     1.2+++ b/emacs/default.el	Mon Sep 23 18:54:03 2024 -0400
     1.3@@ -224,7 +224,6 @@
     1.4 
     1.5 ;;; Lisp
     1.6 (use-package company :ensure t)
     1.7-(use-package slime-repl-ansi-color :ensure t)
     1.8 
     1.9 (defvar slime-toggle nil)
    1.10 (defun slime-toggle ()
    1.11@@ -243,10 +242,10 @@
    1.12 
    1.13 (use-package slime
    1.14   :ensure t
    1.15-  :after (slime-repl-ansi-color)
    1.16-  :init
    1.17+  :config
    1.18   (require 'slime-company "slime-company")
    1.19   (require 'slime-cape "slime-cape")
    1.20+  (require 'slime-repl-ansi-color "slime-repl-ansi-color")
    1.21   (setq slime-contribs '(slime-fancy
    1.22                          slime-quicklisp
    1.23                          slime-hyperdoc
    1.24@@ -269,9 +268,7 @@
    1.25                          slime-asdf))
    1.26   (put 'make-instance 'common-lisp-indent-function 1)
    1.27   (put 'reinitialize-instance 'common-lisp-indent-function 1)
    1.28-  (slime-repl-ansi-color-init)
    1.29-  (slime-cape-init)
    1.30-  (slime-setup)
    1.31+  (slime-setup slime-contribs)
    1.32   ;; X11-only (mcclim requires clx)
    1.33   (defun clouseau-inspect (string)
    1.34     "Inspect a lisp value with Clouseau. make sure to load clouseau
     2.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2+++ b/emacs/lib/slime-repl-ansi-color.el	Mon Sep 23 18:54:03 2024 -0400
     2.3@@ -0,0 +1,36 @@
     2.4+;;; lib/slime-repl-ansi-color.el --- https://github.com/deadtrickster/slime-repl-ansi-color -*- lexical-binding: t -*-
     2.5+(require 'ansi-color)
     2.6+
     2.7+(define-slime-contrib slime-repl-ansi-color
     2.8+  "Turn on ANSI colors in REPL output"
     2.9+  (:authors "Max Mikhanosha")
    2.10+  (:license "GPL")
    2.11+  (:slime-dependencies slime-repl)
    2.12+  (:on-load
    2.13+   (add-hook 'slime-repl-mode-hook
    2.14+             (lambda ()
    2.15+               (slime-repl-ansi-on)))))
    2.16+
    2.17+(defvar slime-repl-ansi-color nil
    2.18+  "When Non-NIL will process ANSI colors in the lisp output")
    2.19+
    2.20+(make-variable-buffer-local 'slime-repl-ansi-color)
    2.21+
    2.22+(defun slime-repl-ansi-on ()
    2.23+  "Set `ansi-color-for-comint-mode' to t."
    2.24+  (interactive)
    2.25+  (setq slime-repl-ansi-color t))
    2.26+
    2.27+(defun slime-repl-ansi-off ()
    2.28+  "Set `ansi-color-for-comint-mode' to t."
    2.29+  (interactive)
    2.30+  (setq slime-repl-ansi-color nil))
    2.31+
    2.32+(defadvice slime-repl-emit (around slime-repl-ansi-colorize activate compile)
    2.33+  (with-current-buffer (slime-output-buffer)
    2.34+    (let ((start slime-output-start))
    2.35+      (setq ad-return-value ad-do-it)
    2.36+      (when slime-repl-ansi-color
    2.37+        (ansi-color-apply-on-region start slime-output-end)))))
    2.38+
    2.39+(provide 'slime-repl-ansi-color)