doomemacs/modules/lang/ruby/autoload.el
Henrik Lissner 68682ac012
fix(ruby): ruby REPL w/ robe
set-repl-handler! handlers have to return a buffer.

Close: #7450
Co-authored-by: Zetagon <Zetagon@users.noreply.github.com>
2024-03-11 03:59:37 -04:00

21 lines
808 B
EmacsLisp

;;; lang/ruby/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +ruby-cleanup-robe-servers-h () ; TODO Use me
"Clean up dangling inf robe processes if there are no more `ruby-mode' buffers
open."
;; FIXME This should wait X seconds before cleaning up
(unless (or (not robe-mode) (doom-buffers-in-mode 'ruby-mode))
(let (inf-buffer kill-buffer-query-functions)
(while (setq inf-buffer (robe-inf-buffer))
(let ((process (get-buffer-process inf-buffer))
confirm-kill-processes)
(when (processp process)
(kill-process (get-buffer-process inf-buffer))
(kill-buffer inf-buffer)))))))
;;;###autoload
(defun +ruby-robe-repl-handler ()
"Start Robe and open a REPL (for `set-repl-handler!')."
(robe-start)
(robe-inf-buffer))