问题标签 [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.

0 投票
2 回答
359 浏览

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?

0 投票
1 回答
231 浏览

scala - IntelliJ 无法解析某些类型,例如:Mongo 记录上的 EnumValue - Scala

例如:

IntelliJ 用红色突出显示 CampaignTypes.ABC,并带有 CampaignTypes.Value 类型的消息表达式不符合预期类型 EnumType#Value

代码编译并工作。但是,IntelliJ 将其标记为错误,使得代码难以阅读(因为还有许多其他情况,IntelliJ 也无法解决)。还使用了正确的 Scala 插件。有没有办法解决这个问题?

在 BsonRecord 上定义的另一个示例 wrt 方法

0 投票
0 回答
333 浏览

scala - 仅稳定对象成员支持移动重构

move refactoring is supported only for stable object members当我尝试xyz()使用 IntelliJ 2018.2 Scala Plugin 2018.2.11重构/移动时收到错误消息

这种限制的原因是什么?作为一种解决方法,我手动进行重构。

0 投票
1 回答
84 浏览

scala - intellij中的New->Scala Class有没有办法默认创建一个案例类(与常规类相比)?

当我右键单击并遵循 New->Scala Class 时,Intellij 默认创建一个新的常规类。我希望它默认创建一个案例类。

一件小事......但在创建很多新课程时很烦人。

它可以在某处配置吗?

0 投票
0 回答
244 浏览

scala - scala自动完成智能

我有一个来自 intellij 和 scala 的奇怪行为。当我尝试使用自动完成时,它只适用于建议而不是相关的方法。一旦我输入名字方法名称,它就会如第二张图片所示工作。任何想法如何解决它?我试过了:

  • 重置缓存
  • 重新加载项目
  • 重新安装 scala 插件

我正在使用 intellij 社区 2019.2.2

例子: 整数

0 投票
2 回答
71 浏览

scala - Intellij:调试不适用于 Play 框架

一段时间以来,我在 Intellij(Ultimate 2019.2)中调试时遇到问题。

如果我设置断点并重新启动 Intellij,或者在代码更改后重新加载,所有断点都会按预期工作:

开始之前

但如果我在 Play 服务器运行时设置断点,其中只有少数仍然有效:

开始后

这是一个错误,还是我的配置错误?

调试配置

0 投票
2 回答
119 浏览

scala - 如何更改 IntelliJ IDEA 中的检查方式?(Scala 插件)

图片说明了一切:

在此处输入图像描述

我希望 squiggle 在 下Int,而不是在意外类型下(Unit在示例中)

我如何实现这种行为?

0 投票
0 回答
89 浏览

intellij-idea - ScalaTestWithActorTestKit 未找到

在 sbt 中添加了以下内容:

“com.typesafe.akka”%%“akka-actor-testkit-typed”%“2.6.3”%测试

仍然没有检测到 ScalaTestWithActorTestKit?

编辑:似乎更多的是intellij问题。

0 投票
0 回答
195 浏览

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。

0 投票
2 回答
771 浏览

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 特有的东西。