diff --git a/.emacs.d/lisp/init-lisp.el b/.emacs.d/lisp/init-lisp.el index cd2a672d..64d81d0d 100644 --- a/.emacs.d/lisp/init-lisp.el +++ b/.emacs.d/lisp/init-lisp.el @@ -106,6 +106,18 @@ ;; (unless (slime-connected-p) ;; (save-excursion (slime))))) +;; Save SLIME history (only for inferior-lisp). +(defvar ambrevar/slime-comint-input-ring nil) +(with-eval-after-load 'desktop + (add-to-list 'desktop-globals-to-save 'ambrevar/slime-comint-input-ring)) +(defun ambrevar/slime-use-global-input-ring () + (add-hook 'kill-buffer-hook #'ambrevar/slime-comint-input-ring nil t) + (when ambrevar/slime-comint-input-ring + (setq comint-input-ring ambrevar/slime-comint-input-ring))) +(defun ambrevar/slime-comint-input-ring () + (setq ambrevar/slime-comint-input-ring comint-input-ring)) +(add-hook 'slime-connected-hook #'ambrevar/slime-use-global-input-ring) + ;;; Scheme. ;; (setq geiser-repl-skip-version-check-p t ;; geiser-mode-start-repl-p t)