问题标签 [intellij-scala]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
intellij-idea - Setting scalacOptions for IntelliJ IDEA
I have a sbt project which I have imported into IntelliJ IDEA. This project includes the splain compiler plugin which includes colour codes in some compiler messages.
When compiling in IntelliJ IDEA then these colour codes are not interpreted. I can add "-P:splain:color:false"
to the Additional compiler options in Preferences which works but is lost when I refresh the sbt project.
Is there a way to set the scalacOptions
in sbt so that it only applies to IntelliJ IDEA?
scala - IntelliJ 无法解析某些类型,例如:Mongo 记录上的 EnumValue - Scala
例如:
IntelliJ 用红色突出显示 CampaignTypes.ABC,并带有 CampaignTypes.Value 类型的消息表达式不符合预期类型 EnumType#Value
代码编译并工作。但是,IntelliJ 将其标记为错误,使得代码难以阅读(因为还有许多其他情况,IntelliJ 也无法解决)。还使用了正确的 Scala 插件。有没有办法解决这个问题?
在 BsonRecord 上定义的另一个示例 wrt 方法
scala - 仅稳定对象成员支持移动重构
move refactoring is supported only for stable object members
当我尝试xyz()
使用 IntelliJ 2018.2 Scala Plugin 2018.2.11重构/移动时收到错误消息
这种限制的原因是什么?作为一种解决方法,我手动进行重构。
scala - intellij中的New->Scala Class有没有办法默认创建一个案例类(与常规类相比)?
当我右键单击并遵循 New->Scala Class 时,Intellij 默认创建一个新的常规类。我希望它默认创建一个案例类。
一件小事......但在创建很多新课程时很烦人。
它可以在某处配置吗?
intellij-idea - ScalaTestWithActorTestKit 未找到
在 sbt 中添加了以下内容:
“com.typesafe.akka”%%“akka-actor-testkit-typed”%“2.6.3”%测试
仍然没有检测到 ScalaTestWithActorTestKit?
编辑:似乎更多的是intellij问题。
scala - 当我的项目中已经添加了依赖项时,为什么必须将 jars 添加到类路径才能运行 jar 文件?
我正在使用 SBT 作为我的构建工具在 IntelliJ 上开发一个 Scala 项目。我最近开始工作 sbt build。这是我的项目结构:
这是我的 build.sbt 文件:
我的代码中有 Class.forName("org.postgresql.Driver) 以连接到数据库和查询。除此之外,我还在代码中添加了密码解密和记录器。我正在以以下格式运行 jar:
这里的问题是,如果我只是按照上面提到的方式提交,我会看到 Postgres 驱动程序的 ClassNotFoundException。所以我将它添加到 jar 的类路径中并提交如下。
现在我得到了 Logger 的异常。所以我再次将它添加到类路径中,它变成:
现在我得到了 commons-codec 的例外,所以我也添加了它。scala -cp /path/postgresql-42.1.4.jar:/path/log4j-1.2.17.jar:/path/commons-codec-1.13.jar
现在 jar 运行良好,我可以看到结果。所以我将依赖项添加到 build.sbt 文件中。我还做了以下操作:
如果我删除所有-cp
参数并提交 jar:scala <jarname> <argument>
它会再次返回 ClassNotFoundException 到 postgres jar。那么在 build.sbt 文件上添加依赖项然后再次将它们添加到类路径中的意义何在?是否有我丢失的设置或者我以错误的方式查看它?
编辑:根据建议,我创建了一个新项目并将所有代码复制到其中,并将插件添加到我在目录 /project/ 中创建addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")
的新文件plugins.sbt
中,如下图所示。
我可以在 sbt-plugins 目录中看到该插件。但是当我再次构建 jar 并导出时,它仍然显示 11kb jar 而不是胖 jar。
scala - IntelliJ 突然停止突出显示 Scala/Dotty 项目中的错误
TLDR;IntelliJ 没有突出显示我的 Scala 项目中的任何错误(语法/类型不匹配)。我已经尝试过类型感知突出显示,将突出显示级别设置为“检查”,并根据 StackOverflow 答案启用“实验功能”,然后重新加载项目。
我有一个在 IntelliJ 2019.3 中运行良好的 Scala 2.13 项目 (sbt)。在那之后我做了一些更改(我没有检查它是否编译,并且它有几个错误)然后我决定将它移植到 Dotty(并将 IntelliJ 更新到 2020.1 EAP)。我创建了一个新的 Dotty 项目,显然没有错误。
然后我将所有源文件复制到这个项目并修改了 build.sbt 文件。当我这样做时,我可以看到一些语法错误突出显示,并且given
关键字未被检测为关键字,很可能是因为插件认为该语言应该是 Scala 2,而不是 Scala 3。
之后,我从 sbt 导入项目,错误的语法错误消失了,所以我很高兴地关闭了该文件并开始修复其他文件。我不确定错误突出显示最初是否有效然后关闭,或者它是否从未有效。过了一会儿,我意识到未解析的引用没有突出显示——例如,当我拼错了一个类名并试图去声明时,它没有做任何事情,尽管当我更正它时,它可以解析引用,大概是因为那是没有错误的文件之一。然后我看到语法错误也没有被识别。
我启用了类型感知突出显示,并且突出显示级别设置为检查。我正在使用带有 Scala 插件版本 2020.1.977 (EAP) 的 IntelliJ 2020.1 EAP。build.sbt 包含 scala 版本“0.23.0-RC1”。IntelliJ 没有运行任何其他进程,当时我的计算机上也没有任何资源密集型程序。
我在右下角收到多条错误消息,例如
java.lang.AssertionError: assertion failed
(几次)com.intellij.psi.PsiInvalidElementAccessException: Element: class org.jetbrains.plugins.scala.lang.psi.impl.statements.params.ScTypeParamImpl #Scala because: different providers: org.jetbrains.plugins.scala.lang.psi.ScFileViewProvider{vFile=file:<The path>/Pattern.scala, content=VirtualFileContent{size=1716}, eventSystemEnabled=true}(a24437); org.jetbrains.plugins.scala.lang.psi.ScFileViewProvider{vFile=file:<Same path>/Pattern.scala, content=VirtualFileContent{size=1716}, eventSystemEnabled=true}(b39181a) invalidated at
(这个出现了好几次)
我感觉这只是 Dotty 的一个错误,很快就会解决。Scala Nightly 插件有类似的行为,这就是为什么我切换到 EAP 并创建了一个全新的项目,我认为它的错误会更少。任何建议将不胜感激。
当我在 IntelliJ 2020.1 EAP 但不是在 2019.3 中打开它时,我的旧 Scala 2 项目也发生了同样的事情。现在看来,这不是 Dotty 特有的东西。