|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; -*- lexical-binding: nil; -*-
;; This file:
;; http://anggtwu.net/elisp/2025-slime.el.html
;; http://anggtwu.net/elisp/2025-slime.el
;; (find-angg "elisp/2025-slime.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; (defun e () (interactive) (find-angg "elisp/2025-slime.el"))
;; See: (find-eepitch-intro "4. Badly-behaved targets")
;; (find-esetkey-links (kbd "<f9>") 'eepitch-b-set-target)
(define-key eev-mode-map (kbd "<f9>") 'eepitch-b-set-target)
;; See: (find-es "slime" "ee-y-or-n-p")
;; (find-efunction 'slime-reinitialize-inferior-lisp-p)
;; (find-slimefile "slime.el" "(defun slime-reinitialize-inferior-lisp-p ")
(defvar ee-slime-reinitialize-inferior-lisp-p)
(setq ee-slime-reinitialize-inferior-lisp-p 'n)
(setq ee-slime-reinitialize-inferior-lisp-p 'y)
(defun ee-y-or-n-p (y-or-n message)
(if y-or-n
(eq y-or-n 'y)
(y-or-n message)))
(defun slime-reinitialize-inferior-lisp-p (program program-args env buffer)
(let ((args (slime-inferior-lisp-args (get-buffer-process buffer))))
(and (equal (plist-get args :program) program)
(equal (plist-get args :program-args) program-args)
(equal (plist-get args :env) env)
(not (ee-y-or-n-p ee-slime-reinitialize-inferior-lisp-p
"Create an additional *inferior-lisp*? ")))))
(defvar ee-slime-pbuffers)
;; Test: (eepitch-slime-pbuffers)
(defun eepitch-slime-pbuffers ()
(cl-loop for buffer in (ee-buffers-in-mode 'slime-repl-mode)
for package = (with-current-buffer buffer slime-buffer-package)
collect (cons package buffer)))
;; Test: (eepitch-slime-set-pbuffers)
(defun eepitch-slime-set-pbuffers ()
(setq ee-slime-pbuffers (eepitch-slime-pbuffers)))
;; Tests: (eepitch-slime-get-pbuffer "MAXIMA")
;; (eepitch-slime-get-pbuffer "COMMON-LISP-USER")
;; (eepitch-slime-get-pbuffer "FOO")
;; See: (find-es "emacs" "plists-and-alists")
(defun eepitch-slime-get-pbuffer (package)
(or (alist-get package ee-slime-pbuffers nil nil 'equal)
(error "No %S in %S" package ee-slime-pbuffers)))
;; Tests: (eepitch-to-slime-pbuffer "MAXIMA")
;; (eepitch-to-slime-pbuffer "COMMON-LISP-USER")
;; (eepitch-to-slime-pbuffer "FOO")
(defun eepitch-to-slime-pbuffer (package)
(eepitch-to-buffer (eepitch-slime-get-pbuffer package)))
;; (eepitch-slime-set-pbuffers)
;; (eepitch-to-slime-pbuffer "MAXIMA")