Elixir 的混合格式忽略伞项目中的行长度选项

问题描述 投票:0回答:1

我的伞式应用程序的根目录中有一个 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

相比之下,如果我将模块复制并粘贴到在线 Elixir 格式化程序中并将行长度选项设置为 120,则文本不会发生任何更改(如预期)。

我一定是搞砸了

.formatter.exs
,但我怎么也想不出是怎么搞砸的。

elixir code-formatting
1个回答
11
投票

mix 格式文档中,它指出,如果您的顶级

.formatter.exs
列出了子目录(我的有
"apps/*"
),则顶级格式化程序中的规则将不会在这些子目录中使用。

解决方案是使用线长参数编辑

apps/[my_app]/.formatter.exs
(之前由
mix new
自动生成):

[
  line_length: 120
]
© www.soinside.com 2019 - 2024. All rights reserved.