Intellij IDEA и SBT синтаксическая ошибка
Я новичок в скале и SBT
Я начал использовать IDEA с SBT и столкнулся с неясной ошибкой (тип выражения DslEntry должен соответствовать Def.SettingsDefinition в файле SBT)
Это очень простой пустой тестовый проект с плагином Jetty (пример взят с сайта плагина)
вот источник plugins.sbt:
logLevel := Level.Warn
addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0")
Эта ошибка присутствует только в графическом интерфейсе IDEA. Если я скомпилирую проект - все нормально. с консоли - все нормально. Но я не люблю, когда что-то не работает должным образом
Я попытался загрузить последнюю версию SBT и указать путь к ней в глобальных свойствах IDEA - проблема сохраняется.
Я скачал последний intellij IDEA EAP с последней версией плагина scala, плагина sbt и других плагинов - проблема сохраняется.
Кто-нибудь может помочь решить эту проблему?
Спасибо
2 ответа
Попробуй это:
lazy val root = (project in file(".")).
enablePlugins(JettyPlugin).
settings(
name := "test",
scalaVersion := "2.11.7",
version := "1.0"
)
Обновления: вот что я знаю:
Ошибка происходит от подключаемого модуля IntelliJ sbt https://github.com/JetBrains/intellij-sbt/blob/master/idea-plugin/src/main/scala/org/jetbrains/sbt/language/SbtAnnotator.scala.
Тип возврата (project in file(".")).
enablePlugins(JettyPlugin)
является Project
, Это приемлемо плагином sbt.
Тем не менее, если вы используете автономный enablePlugins(JettyPlugin)
, тип возврата отличается, и это становится DslEntry
что делает плагин sbt несчастным. Другой способ обойти это - просто использовать возвращаемый тип enablePlugins
, Например:
val foo = enablePlugins(JettyPlugin)
Эта проблема связана с плагином IntelliJ Scala и будет исправлена в следующей версии: https://youtrack.jetbrains.com/issue/SCL-8413