diff --git a/metals/src/main/scala/scala/meta/internal/metals/ChosenBuildTool.scala b/metals/src/main/scala/scala/meta/internal/metals/ChosenBuildTool.scala index bdffce42c51..521f2a34a53 100644 --- a/metals/src/main/scala/scala/meta/internal/metals/ChosenBuildTool.scala +++ b/metals/src/main/scala/scala/meta/internal/metals/ChosenBuildTool.scala @@ -13,21 +13,23 @@ class ChosenBuildTool(conn: () => Connection) { ) def selectedBuildTool(): Option[String] = { - val selected = currentTool - .get() - .orElse( - conn() + currentTool.get() match { + case selected @ Some(_) => + selected + case None => + val selected = conn() .query( "select * from chosen_build_tool LIMIT 1;" )(_ => ()) { _.getString("build_tool") } .headOption - ) - selected.flatMap(toolName => - currentTool.updateAndGet { - case None => Some(toolName) - case some => some - } - ) + + selected.flatMap(toolName => + currentTool.updateAndGet { + case None => Some(toolName) + case some => some + } + ) + } } def chooseBuildTool(buildTool: String): Int = synchronized {