我的项目根目录中有一个 Elixir 项目 .formatter.exs
文件,如下所示:
[
line_length: 120,
inputs: ["mix.exs", "config/*.exs"],
subdirectories: ["apps/*"]
]
但据我所知,
line_length
参数被忽略了。给定以下代码,最长的行(长度为 102 个字符)总是被分成两行(将
when
子句包装到新行):defmodule SomeModule do
def lookup_data(parameter1, parameter2) when is_integer(parameter1) and is_integer(parameter2) do
:not_implemented
end
end
相反,如果我将模块复制并粘贴到 the online Elixir formatter 并将行长选项设置为 120,我不会对文本进行任何更改(如预期的那样)。
我一定以某种方式搞砸了
.formatter.exs
,但对于我的生活,我无法弄清楚如何。
最佳答案
在 mix format docs ,它指出如果您的顶级 .formatter.exs
列出子目录(我的有 "apps/*"
),来自顶级格式化程序的规则不会在这些子目录中使用。
解决方案是编辑 apps/[my_app]/.formatter.exs
(之前由 mix new
自动生成)带有行长参数:
[
line_length: 120
]
关于Elixir 混合格式忽略行长选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59535671/