-Dsbt.semanticdb=true to enable SemanticDB

This commit is contained in:
Eugene Yokota 2020-06-14 17:12:33 -04:00
parent 837dcbb5a6
commit 8789d20724
2 changed files with 17 additions and 8 deletions

View File

@ -18,13 +18,20 @@ import sbt.internal.util.complete.SizeParser
// See also LineReader.scala
object SysProp {
def booleanOpt(name: String): Option[Boolean] =
sys.props.get(name).flatMap { x =>
x.toLowerCase(Locale.ENGLISH) match {
case "1" | "always" | "true" => Some(true)
case "0" | "never" | "false" => Some(false)
case "auto" => None
case _ => None
}
sys.props.get(name) match {
case Some(x) => parseBoolean(x)
case _ =>
sys.env.get(name.toUpperCase(Locale.ENGLISH).replace('.', '_')) match {
case Some(x) => parseBoolean(x)
case _ => None
}
}
private def parseBoolean(value: String): Option[Boolean] =
value.toLowerCase(Locale.ENGLISH) match {
case "1" | "always" | "true" => Some(true)
case "0" | "never" | "false" => Some(false)
case "auto" => None
case _ => None
}
def getOrFalse(name: String): Boolean = booleanOpt(name).getOrElse(false)
@ -71,6 +78,7 @@ object SysProp {
def ci: Boolean = getOrFalse("sbt.ci")
def allowRootDir: Boolean = getOrFalse("sbt.rootdir")
def legacyTestReport: Boolean = getOrFalse("sbt.testing.legacyreport")
def semanticdb: Boolean = getOrFalse("sbt.semanticdb")
def watchMode: String =
sys.props.get("sbt.watch.mode").getOrElse("auto")

View File

@ -9,6 +9,7 @@ package sbt
package plugins
import Keys._
import sbt.internal.SysProp
import sbt.librarymanagement.syntax._
import sbt.librarymanagement.CrossVersion
import Project.inConfig
@ -18,7 +19,7 @@ object SemanticdbPlugin extends AutoPlugin {
override def trigger = allRequirements
override lazy val globalSettings: Seq[Def.Setting[_]] = Seq(
semanticdbEnabled := false,
semanticdbEnabled := SysProp.semanticdb,
semanticdbIncludeInJar := false,
semanticdbOptions := List("-Yrangepos"),
semanticdbVersion := "4.3.15"