Подтвердить что ты не робот

Синтаксическая ошибка Intellij IDEA и SBT

Я новичок в scala и SBT
Я начал использовать IDEA с SBT и столкнулся с нечеткой ошибкой (Тип выражения DslEntry должен соответствовать Def.SettingsDefinition в SBT файле)
введите описание изображения здесь
Это очень простой пустой тестовый проект с плагином для прикроватного (пример взято с сайта плагина)

здесь источник plugins.sbt:

logLevel := Level.Warn

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0")

Эта ошибка присутствует только в графическом интерфейсе IDEA. Если я скомпилирую проект - все отлично. с консоли - все отлично. Но мне не нравится, когда что-то не работает должным образом

Я попытался загрузить последнюю версию SBT и установить путь к ней в глобальных свойствах IDEA - проблема сохраняется.

Я скачал последний intellij IDEA EAP с последней версией плагина scala, плагина sbt и других плагинов - проблема не устранена.

Может ли кто-нибудь помочь решить эту проблему?
Спасибо

4b9b3361

Ответ 1

Попробуйте следующее:

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#L41.

Возвращаемый тип (project in file(".")). enablePlugins(JettyPlugin) равен Project. Это приемлемо для плагина sbt.

Однако, если вы используете автономный enablePlugins(JettyPlugin), тип возврата другой, и он становится DslEntry, что делает плагин sbt недовольным. Другой способ обхода этого - просто использовать тип возврата enablePlugins. Например:

val foo = enablePlugins(JettyPlugin)