问题标签 [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 投票
2 回答
1777 浏览

scala - 使用 vs 代码,如何让 scala 格式工作并格式化我的代码?

我的多项目 sbt 存储库中有 scala 格式插件。

所以在 sbt 控制台中,如果我运行 scalafmt 它工作正常

我的 build.sbt 有:

如果我在 sbt 中进行 ~compile 或只是手动编译,它不会在编译期间格式化我的代码。

我的设置有什么问题?

此外,运行 scalafmt 可以,但它不会像我的 Dependencies.scala 文件那样格式化 /project 中的 .scala 文件。为什么忽略这些文件?

我也将 VS Code 与金属一起用作我的 IDE。

0 投票
1 回答
1622 浏览

scala - 理解 Scala 开发工具

生态系统中有无数的开发工具和术语,例如语言服务器、构建服务器、Metals、BSP、LSP、Bloop、Zinc、Coursier、增量编译器、演示编译器等。

我想知道是否有人可以展示它们如何组合在一起并简要解释关系和差异。具体来说,我希望有一个图表并按照Make sense of Scala FP Libraries的方式给出答案。例如,这是我的尝试

0 投票
0 回答
133 浏览

scala - 如何在 spacemacs 中正确安装 scala metal lsp

标题说明了一切,我想在 spacemacs 中安装 scala metal LSP,我确实尝试了官方的 metal/spacemacs 教程但没有成功:

有没有人设法让 scala-metals 在 spacemacs 中工作?

0 投票
0 回答
324 浏览

scala - 缩进 4 个空格在 VS Code 的 scalafmt.config 中不起作用

我正在尝试设置scalafmt.config,以便格式化我的代码。我正在使用的所有功能——例如align.preset = morealign.openParenDefnSite = false等等——似乎都运行良好。但是,我有缩进的问题。我想将它设置为 4,而不是现在的 2。所以,我尝试使用以下内容:

而且没有成功。我希望我的整个代码缩进 4,但它仍然缩进 2。

我正在使用带有 Metals 的 Visual Studio Code 作为我的插件。此外,我在笔记本电脑版本 2.5.0 上本地安装了scalafmt 。

0 投票
1 回答
107 浏览

scala - 如何使用 vs 代码排除 html 文件的 scala 格式

我正在为我的 scala/play 应用程序使用 vs 代码。

每当我保存我的 main.scala.html 布局文件时,格式都会破坏我对资产文件的引用。

它插入一个空格,我对我的 css 和 js 文件的引用失败。

注意:("dist/...") 之间有一个空格

如果我删除空间并保存,它会再次插入。

我首先认为它是 scala 格式,但如果我明确排除该文件,它不会做任何事情。

在我的 .scalafmt.conf 文件中,我添加了:(我添加了 project.excludeFilters 设置):

我正在使用 scala 格式版本 2.4.0

我不确定这是scala格式还是金属这样做?

我的扩展是:

在此处输入图像描述

0 投票
1 回答
139 浏览

scala - 在 (n)vim 中手动触发 Scala Metals 构建导入

根据标题,如何在 (n)vim 中手动触发来自 Scala Metals的构建导入查询?

Metals 通常会在写入更改build.sbt或相关文件时进行查询,但是当我决定取消查询(空条目)或在上一次导入完成之前再次写入时,再次查询失败。所以,我希望能够手动触发构建导入。但是怎么做?

0 投票
0 回答
203 浏览

scala - 使用 bloop 处理 Scala Metals 语言服务器中的递归依赖项

我一直在使用coc.nvim并且非常喜欢它。最近我开始从事一个主要由 Scala 代码组成的相对较大的项目,因此安装了coc-metals扩展,它会自动安装语言服务器和其他东西。在具有更简单依赖关系图的项目中工作正常,但导入完整项目并构建它会失败,并出现类似[coc.nvim] Fatal recursive dependency detected in.... 我使用 maven 作为构建工具,它构建得很好。

我相信这个问题与bloop有关。bloop projects从项目根目录运行会产生相同的错误。为什么代码在运行时构建得很好,mvn clean install但在 bloop 中却没有?如果无法从根目录使用 bloop,则无法跨项目/模块跳转到定义,以及金属和 CoC 的许多其他功能。

非常感谢任何相关的问题或想法,以帮助完成这项工作!(包括VS代码标签,因为它使用相同的金属LSP,所以问题应该是一样的)

编辑:可以确认 VS 代码在安装 Scala(金属)扩展时存在完全相同的问题。

编辑:有没有什么方法可以直接运行金属,同时避免与 bloop 有任何关系?IntelliJ 可以很好地导入项目,所以我知道这本身没有什么问题。

0 投票
1 回答
80 浏览

scala - Atom 上的金属无法运行项目

这可能是一个非常愚蠢的问题,但我无法在网上找到任何东西,所以也许有人可以帮助我。我目前正在学习 Scala,因为我不喜欢 IntelliJ,所以我切换到 vim,有时切换到带有金属和 sbt 的 VSCode 来运行我的 Scala 应用程序,但我个人是 Atom 的粉丝。但是我很难让金属在 Atom 中正常运行,我认为现在一切都可以编译了,但我不知道如何启动我的代码。例如,在 VSCode 中,我的主要方法上方有一个“运行”链接,但我在 Atom 中找不到类似的东西。

0 投票
3 回答
7764 浏览

scala - 我究竟如何使用 Metals 和 VS Code 调试器?

Metals 宣布“现在可以使用新的“运行”、“测试”、“调试”和“调试测试”按钮直接从 VS Code 运行和测试。” 有一个很好的 gif 显示它可以做什么,我不知道如何达到这一点。

我尝试使用以下配置启动 VS Code 调试器launch.json

并收到此错误消息:

Gitter scalameta/metals上的某个人遇到了这个问题,答案是他需要 Bloop 来支持 utest,我认为我的需要,因为我的.bloop/play-zip-test.jsonsbt 项目中有一个文件,但如果我的 Bloop 支持 utest 以及该怎么做,我不是 100%如果没有。我尝试运行bloop utest但失败了,因为我没有安装 Bloop CLI。我有金属附带的 Bloop。

0 投票
0 回答
561 浏览

scala - 金属的 VS 代码错误的调试/运行问题

我有一个只有一个对象的简单项目

在此处输入图像描述

它在 sbt 中运行良好

在此处输入图像描述

我在 vs 代码中的 launch.json 中有以下内容

在此处输入图像描述

当我尝试运行它时,我收到以下错误:

在此处输入图像描述

我还没有成功找到解决方案。