fix(common-lisp): inferior-lisp-program: accept list

To quote the docstring for `inferior-lisp-program`:

  Program name for starting a Lisp subprocess to Emacs.  Can be a string
  naming a program, a whitespace-separated string of \"EXECUTABLE ARG1
  ARG2\" or a list (EXECUTABLE ARGS...) where EXECUTABLE and ARGS are
  strings.

Fix: #8324
This commit is contained in:
Henrik Lissner
2025-03-24 18:21:33 -04:00
parent 6cc1284171
commit bdd3701987
2 changed files with 9 additions and 5 deletions

View File

@ -80,7 +80,9 @@
"Attempt to auto-start sly when opening a lisp buffer." "Attempt to auto-start sly when opening a lisp buffer."
(cond ((or (doom-temp-buffer-p (current-buffer)) (cond ((or (doom-temp-buffer-p (current-buffer))
(sly-connected-p))) (sly-connected-p)))
((executable-find (car (split-string inferior-lisp-program))) ((executable-find (car (if (listp inferior-lisp-program)
inferior-lisp-program
(split-string inferior-lisp-program))))
(let ((sly-auto-start 'always)) (let ((sly-auto-start 'always))
(sly-auto-start) (sly-auto-start)
(add-hook 'kill-buffer-hook #'+common-lisp--cleanup-sly-maybe-h nil t))) (add-hook 'kill-buffer-hook #'+common-lisp--cleanup-sly-maybe-h nil t)))

View File

@ -1,7 +1,9 @@
;;; lang/common-lisp/doctor.el -*- lexical-binding: t; -*- ;;; lang/common-lisp/doctor.el -*- lexical-binding: t; -*-
(when (require 'sly nil t) (when (require 'sly nil t)
(let ((prog-name (car (split-string inferior-lisp-program)))) (unless (executable-find
(unless (executable-find prog-name) (car (if (listp inferior-lisp-program)
inferior-lisp-program
(split-string inferior-lisp-program))))
(warn! "Couldn't find your `inferior-lisp-program' (%s). Is it installed?" (warn! "Couldn't find your `inferior-lisp-program' (%s). Is it installed?"
inferior-lisp-program)))) inferior-lisp-program)))