From d2b694ed53f13d16402d69ec004017bb358bbf41 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 11 Jul 2019 01:24:28 +0200 Subject: [PATCH] lang/scala: fix REPL command for non-project files run-scala errors out if you're not in a valid project. --- modules/lang/scala/autoload.el | 15 +++++++++++++++ modules/lang/scala/config.el | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/lang/scala/autoload.el b/modules/lang/scala/autoload.el index 6b162afa8..d9eff6195 100644 --- a/modules/lang/scala/autoload.el +++ b/modules/lang/scala/autoload.el @@ -33,3 +33,18 @@ Meant to be used for `scala-mode's `comment-line-break-function'." (t (newline nil t) (indent-according-to-mode)))))) + +;;;###autoload +(defun +scala/open-repl () + "Open a scala repl. Uses `run-scala' if in a sbt project." + (interactive) + (if (and (require 'sbt-mode nil t) + (sbt:find-root)) + (run-scala) + (let ((buffer-name "*scala-repl") + buffer) + (unless (comint-check-proc buffer-name) + (setq buffer (make-comint-in-buffer + "scala-repl" buffer-name "scala"))) + (display-buffer buffer) + buffer))) diff --git a/modules/lang/scala/config.el b/modules/lang/scala/config.el index 136f85dd0..5140a12b6 100644 --- a/modules/lang/scala/config.el +++ b/modules/lang/scala/config.el @@ -33,4 +33,4 @@ (def-package! sbt-mode :after scala-mode - :config (set-repl-handler! 'scala-mode #'run-scala)) + :config (set-repl-handler! 'scala-mode #'+scala/open-repl))