The Equinox launcher does not stop a launch when there are (Scala) build errors. This is due to Scala error markers having a different ID from the JDT ones. This can be done by overriding isLaunchProblem
, like this:
override protected def isLaunchProblem(problemMarker: IMarker): Boolean =
super.isLaunchProblem(problemMarker) || {
val isError = Option(problemMarker.getAttribute(IMarker.SEVERITY)).map(_.asInstanceOf[Integer].intValue >= IMarker.SEVERITY_ERROR).getOrElse(false)
isError && ScalaPlugin.plugin.scalaErrorMarkers.contains(problemMarker.getType())
}