问题标签 [scalafmt]

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 投票
1 回答
782 浏览

scala - 如何使用scalafmt为模式匹配语法中的案例配置alignToken?

在 scala 中使用 scalafmt 并在我的.scalafmt.conf文件中包含以下内容:

它目前从以下位置对齐大小写箭头标记:

对此:

我不希望代码在箭头上对齐,以最大限度地减少拉取请求中的空白噪音,尤其是在重命名一行时,这会改变整个块的缩进级别。

阅读scalafmt 文档我只发现了默认情况:

align.tokens默认值:[caseArrow]

对齐标记是一对代码,它是标记运算符和所有者的字符串文字,所有者是拥有该标记的最近树节点的类型。如果没有提供所有者,则将匹配所有树种。

此示例的配置

我不仅要禁用对齐,还希望 scalafmt 确保=>箭头前后各有一个空格。(所以它基本上应该与它目前正在做的相反。)

我怎样才能做到这一点?

0 投票
1 回答
1577 浏览

scala - 如何创建我自己的项目可以依赖的自定义 scalafmt 样式?

我有一堆 scala 项目。他们应该共享一个共同的代码风格。我正在使用 scalafmt 来执行某些规则,但我必须创建一个

对于每个项目。如果团队更改了 scalafmt 规则,我们必须为每个项目手动更改它。因此,这些文件很容易自行演变。

如何创建一个公共scalafmt.conf作为我自己的依赖项,其他项目可以导入?这样,一个项目仍然可以依赖于他们自己的代码样式版本——但升级路径更加直接,并且应该只包含升级依赖项。

Scalafmt 支持默认样式,例如:

或者

我基本上是在寻找一种方法来定义我自己的风格并在我的项目中引用它:

0 投票
1 回答
965 浏览

scala - 如何从命令行调用插件(sbt 初学者)?

https://scalameta.org/scalafmt/docs/installation.html之后,我正在尝试通过命令行重新格式化我的 Scala 代码。

如何执行scalafmt命令?

sbt我可以调用从项目加载scalafmt吗?

使用以下返回错误:

0 投票
1 回答
323 浏览

scala - 如何在scalafmt中更改标签宽度

我正在使用带有金属 scala 扩展的 VS 代码,并且无法正确格式化我的代码。我想为所有内容设置 8 个空格的制表符宽度。这是我的 .scalafmt.conf

然后我按 Ctrl+Shift+I 来格式化文档。只有调用站点与 8 个空格对齐,定义站点仅与 2 个空格对齐。

这就是我的格式化代码的样子。

为什么类的主体不与 8 个空格对齐?

0 投票
1 回答
60 浏览

scala - 为任意 scalafmt 设置保留现有代码

我正在尝试将 scalafmt 温和地引入现有的大型代码库,并且我希望它几乎不做任何更改,除了整个团队可以同意的少数无争议设置。

通过像我这样的一些设置,maxColumn我可以将默认值覆盖80为一些荒谬的东西,比如5000没有变化。但是对于其他设置,我必须做出选择来修改现有代码,例如continuationIndent.callSite. 该设置需要一个数字,该数字会在我们的代码库的第一次运行时积极引入更改。

除了一些特定设置之外,我可以在我的 scalafmt 配置中做些什么来保留我的所有代码吗?

编辑:我也会接受解决相同问题的其他工具的建议。

0 投票
0 回答
139 浏览

scalafmt - 如何让scalafmt将多行字符串移动到新行

当函数调用中有多行字符串作为参数时,我的 scalafmt 将始终将它的开头放在前面代码的同一行中,并且以下字符串行将根据字符串 start 的起始位置进行长缩进。例如:

很容易造成“代码行太长”的格式问题,我也觉得很丑。我希望多行字符串从新行开始,并且缩进很短,如下所示:

.scalafmt.conf 中是否有任何配置可以实现?

0 投票
1 回答
310 浏览

scala - 如何配置 IntelliJ 以在“优化导入”上为 Scala 代码库使用短包名称?

在我们使用 IntelliJ 社区版的 scala 项目中,我们希望每个文件使用多个包,以便我们可以用更短的语法引用它们:

然而 IntellJ 想要强制执行完全限定的包名称,因此在优化导入时它将代码更改为:

如何配置优化导入的行为?

它应该

  • 至少保留缩短的进口或
  • 充其量自动缩短较长的

我想保持优化导入的其他行为不变,例如删除未使用的导入、添加丢失的导入、排序导入。所以我不认为不使用优化导入是一个有效的选项。


我们还使用了scalafmt格式化程序,所以它可能与我们.scalafmt.conf在这个项目中看起来像这样:

0 投票
0 回答
241 浏览

scala - 如何在scalafmt中将lambda参数保持在同一行

默认情况下,scalafmt 将像这样重新格式化代码

看起来像这样

如何将其配置为将匿名函数参数保留在同一行?请注意,如果您使用大括号而不是括号,它已经这样做了。

0 投票
1 回答
126 浏览

scala - scalafmt 类,方法参数意图

在 scalafmt 中是否有可能在 intellij 格式化程序中设置意图,所以在结束之后(

IE:

我只看到设置选项卡编号的能力,但它从行开始计数而不是打开括号位置

0 投票
0 回答
116 浏览

scalafmt - scalafmt 配置类似于 IntelliJ 配置

是否有一个 scalafmt 配置重新格式化代码,就像 IntelliJ 和 scala 插件一样?我在配置它时遇到问题,我的队友只使用 IntelliJ 我 VsCode 并且我经常只需要打开 IntelliJ 来重新格式化代码:)

谢谢