changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / emacs/lib/slime-repl-ansi-color.el

changeset 668: c687d7005ec7
child: 3966d52b0b2f
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 23 Sep 2024 18:54:03 -0400
permissions: -rw-r--r--
description: add slime-repl-ansi-color
1 ;;; lib/slime-repl-ansi-color.el --- https://github.com/deadtrickster/slime-repl-ansi-color -*- lexical-binding: t -*-
2 (require 'ansi-color)
3 
4 (define-slime-contrib slime-repl-ansi-color
5  "Turn on ANSI colors in REPL output"
6  (:authors "Max Mikhanosha")
7  (:license "GPL")
8  (:slime-dependencies slime-repl)
9  (:on-load
10  (add-hook 'slime-repl-mode-hook
11  (lambda ()
12  (slime-repl-ansi-on)))))
13 
14 (defvar slime-repl-ansi-color nil
15  "When Non-NIL will process ANSI colors in the lisp output")
16 
17 (make-variable-buffer-local 'slime-repl-ansi-color)
18 
19 (defun slime-repl-ansi-on ()
20  "Set `ansi-color-for-comint-mode' to t."
21  (interactive)
22  (setq slime-repl-ansi-color t))
23 
24 (defun slime-repl-ansi-off ()
25  "Set `ansi-color-for-comint-mode' to t."
26  (interactive)
27  (setq slime-repl-ansi-color nil))
28 
29 (defadvice slime-repl-emit (around slime-repl-ansi-colorize activate compile)
30  (with-current-buffer (slime-output-buffer)
31  (let ((start slime-output-start))
32  (setq ad-return-value ad-do-it)
33  (when slime-repl-ansi-color
34  (ansi-color-apply-on-region start slime-output-end)))))
35 
36 (provide 'slime-repl-ansi-color)