Elixir的混合格式忽略行长选项

时间:2019-12-30 19:01:38

标签: elixir code-formatting

我的项目根目录中有一个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,但是对于我的一生,我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

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

解决方案是使用行长参数编辑apps/[my_app]/.formatter.exs(先前由mix new自动生成)

[
  line_length: 120
]