问题标签 [scala-metals]

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 投票
0 回答
60 浏览

scala - 在使用 Scala 的金属进行调试时将参数传递给主函数?

我有一个扩展 App 的 Main 对象。我看到了运行/调试镜头。但我无法终生弄清楚如何将参数发送到 Main 函数以运行。有谁知道该怎么做?

我在这里找到了一些看似半相关的文档。

0 投票
2 回答
444 浏览

scala - 下载 org.scalameta 时出错:semanticdb-scalac_2.13.6:4.4.10

我最近升级到 Scala 2.13.6,我看到:

下载 org.scalameta 时出错:semanticdb-scalac_2.13.6:4.4.10

当我尝试构建时。

当我升级到 2.13.5 时,我遇到了类似的错误,但能够添加semanticdbVersion := "4.4.11"build.sbt以使其工作。

这次不行。

0 投票
2 回答
561 浏览

scala - 在 VSCode 上使用 Scala-Metals 构建 jar 文件

我正在尝试使用 VSCode 和金属扩展为 Scala 和 Spark 进行开发。我的设置是按照说明(此处)使用开发容器。现在我的代码正在运行,我需要构建一个 jar 文件来部署到 Spark。有没有办法在金属扩展中做到这一点?

我已经阅读了关于使用sbt-assembly来构建一个胖罐的信息,但我不确定如何将它与我的设置集成。任何帮助将不胜感激。

编辑

更清楚地说,metals VSCode 扩展使用 bloop 或 sbt-bsp 作为构建服务器,我已将其配置为使用 sbt 服务器。我的问题是是否以及如何将 sbt-assembly 扩展与其集成。

0 投票
0 回答
98 浏览

emacs - 在 doom-emacs 中的 lsp-execute-code-action 之后添加钩子

我使用 LSP-metals(scala LSP 客户端)在 doom-emacs 中工作。

我的不便是当我执行操作时,我需要额外的操作来保存缓冲区以触发 LSP-server 进行重新编译并显示更新的错误列表。例如,导入需要的类在此处输入图像描述 ,我尝试将钩子添加到lsp-execute-code-action但没有成功。

0 投票
0 回答
274 浏览

scala - SBT 似乎无法下载依赖项

似乎 SBT 找不到任何所需的依赖项,而且 blooper 和 sbt 似乎都无法在线连接以下载任何依赖项。我检查了我是否有代理,是否有任何不一致的版本冲突,并完全重新安装了 SBT、NVM、VSCode 和其他所有相关内容。我似乎无法弄清楚为什么它不会构建以及为什么它找不到任何依赖项。

编辑:添加 Build.sbt 文件

我已经从 repo 链接中删除了 https://,但它们在正常错误中存在。

build.sbt 文件:

收到错误:

0 投票
0 回答
189 浏览

scala - Scala VSCode,金属智能感知无法正常工作

此代码确实可以使用 mill 编译和运行,但智能感知显示错误“object pwd is not a member of package foo.os bloop”

我有金属 vscode 扩展,它确实识别项目库中的 os-lib。它确实显示了 os.pwd 的类型,但它仍然显示错误。

0 投票
0 回答
73 浏览

scala - 如何在 Visual Studio Code 中调试 Scala?

我创建了一个.scala文件并在 VS Code 中打开它。我安装了 Scala (Metals),它是一个 VS Code 扩展,其中包含调试器。根据其文档,它应该与 VS Code 的调试功能集成。但我只能在 VS Code 中使用Run Code (Control+Alt+N) 命令执行我的文件。发出Start Debugging (F5) 或Run without Debigging (Control+F5) 什么都不做。文章中提到的代码镜头也没有出现。导入构建提示也没有。此外,某些 Metals 的命令不起作用,从而导致错误消息。例如运行医生(我尝试过,阅读它应该修复我的配置中可能存在的错误)它说:

命令“金属:运行医生”导致错误(未找到命令“金属。医生运行”)

我尝试重新安装 Metals 但无济于事。

我的软件版本是:

  • Scala 2.13.6-20210529-211702-未知
  • OpenJDK 运行时环境(内部版本 1.8.0_292-b10)
  • sbt 1.5.5
  • 5.15.2-2-MANJARO #1 SMP PREEMPT 2021 年 11 月 13 日星期六 19:25:38 UTC 2021 x86_64 GNU/Linux
  • 视觉工作室代码 1.62.3
  • 斯卡拉(金属)v1.10.15
0 投票
0 回答
121 浏览

java - java.lang.NoClassDefFoundError: scala/collection/immutable/Seq 尝试使用 XGBoost

我是 Scala 和 XGBoost 的新手。我从一位在生产中工作的同事那里收到了一个 Gradle Scala 项目,我正在尝试在我的机器上运行它。当我尝试运行时,出现此错误:

我对 Scala 比较陌生,但在 Java 方面经验丰富,但我在网上找不到这个错误的好答案。

仅当涉及 XGBoost 库时才会发生此错误,否则项目运行正常。

我还应该提到,我在使用 Metals 从 Visual Studio Code 运行时收到此消息:

摇篮设置:

JVM:11.0.13
XGBoost:0.72(我知道这是旧版本)
Scala:2.13.5

0 投票
0 回答
84 浏览

scala - 下载 Metals(Vscode Scala 扩展)失败并显示以下内容:spawn C:\Program Files (x86)\Java\jdk1.8.0_144\bin\bin\java ENOENT

我正在尝试在 vscode 上运行 Scala 程序。我尝试下载 Scala (Metals) Extension,但它给了我以下错误。

下载 Metals 失败,请确保您有 Internet 连接并且 Java Home 'C:\Program Files (x86)\Java\jdk1.8.0_144\bin' 有效。您可以在设置中配置 Java Home。如果您使用的是 HTTP 代理,请参阅https://scalameta.org/metals/docs/editors/vscode.html#http-proxy以获取说明。

我没有使用任何代理。我检查了我的环境变量,并将 JAVA_HOME 系统变量设置为“C:\Program Files (x86)\Java\jdk1.8.0_144\bin”

我的机器上安装了 Java 8,但 VSCODE 上没有。这会是个问题吗?

0 投票
1 回答
36 浏览

java - 如何启动本地构建的金属语言服务器?

我正在尝试将 emacs 设置为 scala 编辑器。为此,我正在尝试安装金属以使相应的模式起作用。

但是,由于某种原因,metals 要么无法从 emacs 安装,要么在使用 Coursier 安装时,无法从 emacs 响应。

因此,为了探索所有选项,我决定使用金属源代码(来自Github?但我遇到了无法正确使用它们的问题。

我能做些什么来让 emacs 从源头上使用金属?

目前,我已经尝试用

sbt 发布本地

然后尝试运行生成的 jar,结果可预测:

线程“main”中的异常 java.lang.NoClassDefFoundError: scala/collection/Seq at scala.meta.metals.Main.main(Main.scala) 原因:java.lang.ClassNotFoundException: scala.collection.Seq at java.base /jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java.lang.ClassLoader .loadClass(ClassLoader.java:522) ... 还有 1 个

处理金属stderr完成线程“main”中的异常java.lang.NoClassDefFoundError:scala/collection/Seq at scala.meta.metals.Main.main(Main.scala)引起:java.lang.ClassNotFoundException:scala.collection.Seq在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 在 java.base/java .lang.ClassLoader.loadClass(ClassLoader.java:522) ... 还有 1 个

加工金属stderr完成

在我的系统中,我按照 scala 网站上的说明安装了 sbt。

我应该如何设置系统以便可以发射和使用金属?