mix format
Форматирует заданные файлы и шаблоны.
mix format mix.exs "lib/**/*.{ex,exs}" "test/**/*.{ex,exs}"
Если какой-либо из файлов является -, то вывод считывается из стандартного ввода и записывается в стандартный вывод.
Параметры форматирования
Форматировщик будет читать файл .formatter.exs в текущем каталоге для настройки форматирования. Оценка этого файла должна вернуть список ключевых слов.
Вот пример файла .formatter.exs , который служит отправной точкой:
[
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
]
Помимо параметров, перечисленных в Code.format_string!/2, файл .formatter.exs поддерживает следующие параметры:
:inputs(список путей и шаблонов) - задает стандартные входные данные для этой задачи. Например,["mix.exs", "{config,lib,test}/**/*.{ex,exs}"]. Шаблоны расширяются с помощьюPath.wildcard/2.:subdirectories(список путей и шаблонов) - задает подкаталоги, имеющие свои правила форматирования. Каждый подкаталог должен иметь файл.formatter.exs, который настраивает, как записи в этом подкаталоге должны быть отформатированы. Настройки между.formatter.exsне совместно используются и не наследуются. Если.formatter.exsперечисляет "lib/app" как подкаталог, правила в.formatter.exsне будут доступны вlib/app/.formatter.exs. Обратите внимание, что родительский.formatter.exsне должен указывать файлы внутри подкаталога "lib/app" в своей:inputsконфигурации. Если это произойдёт, поведение, какой конфигурации форматирования будет выбрано, не определено.:import_deps(список зависимостей как атомы) - задает список зависимостей, чья конфигурация форматирования будет импортирована. При указании форматировщик должен работать в той же директории, что и файлmix.exs, который определяет эти зависимости. Дополнительную информацию см. в разделе "Импорт конфигурации зависимостей" ниже.:export(ключевой список) - задает конфигурацию форматирования для экспорта. См. раздел "Импорт конфигурации зависимостей" ниже.
Параметры, специфичные для задачи
--check-formatted- проверяет, что файл уже отформатирован. Это полезно в хуках pre-commit и скриптах CI, если вы хотите отклонить изменения с неотформатированным кодом. Однако помните, что отформатированный вывод может отличаться между версиями Elixir, так как к форматировщику применяются улучшения и исправления.--check-equivalent- проверяет, что файлы после форматирования имеют тот же AST, что и до форматирования. Если AST не эквивалентны, это ошибка в кодовом форматировщике. Этот параметр полезен, если вы подозреваете, что столкнулись с ошибкой форматировщика, и хотите получить подтверждение.--dry-run- не сохраняет файлы после форматирования.--dot-formatter- путь к файлу с конфигурацией форматирования. По умолчанию.formatter.exs, если он доступен. Дополнительную информацию см. в разделе "Параметры форматирования" выше.
Если какой-либо из параметров --check-* задан и проверка завершилась неудачно, отформатированное содержимое не будет записано на диск и не будет выведено на стандартный вывод.
Когда форматировать код
Мы рекомендуем разработчикам форматировать код непосредственно в своих редакторах, либо автоматически при сохранении файла, либо посредством явной команды или сочетания клавиш. Если такой вариант пока не доступен в вашем редакторе, добавление необходимой интеграции обычно сводится к вызову:
cd $project && mix format $file
где $file относится к текущему файлу, а $project - к корню вашего проекта.
Также возможно отформатировать весь проект, передав список шаблонов и файлов в mix format, как показано в начале документации по этой задаче. Этот список также можно установить в файле .formatter.exs под ключом :inputs.
Импорт конфигурации зависимостей
Эта задача поддерживает импорт конфигурации форматирования из зависимостей.
Зависимость, которая хочет экспортировать конфигурацию форматирования, должна иметь файл .formatter.exs в корне проекта. В этом файле зависимость может экспортировать параметр :export с конфигурацией для экспорта. На данный момент поддерживается только один параметр в :export: :locals_without_parens (значение которого имеет ту же форму, что и значение параметра :locals_without_parens в Code.format_string!/2).
Функции, перечисленные под :locals_without_parens в параметре :export зависимости, могут быть импортированы в проект, перечислив эту зависимость в параметре :import_deps файла конфигурации форматирования проекта.
Например, рассмотрим проект под названием my_app , зависящий от другого проекта под названием my_dep. my_dep хочет экспортировать некоторую конфигурацию, поэтому файл my_dep/.formatter.exs будет выглядеть так:
# my_dep/.formatter.exs
[
# Regular formatter configuration for my_dep
# ...
export: [
locals_without_parens: [some_dsl_call: 2, some_dsl_call: 3]
]
]
Для импорта конфигурации файл my_app в параметре .formatter.exs должен выглядеть следующим образом:
# my_app/.formatter.exs [ import_deps: [:my_dep] ]
Обзор
Функции
- formatter_opts_for_file(file, opts \\ [])
Возвращает параметры форматирования, которые следует использовать для данного файла.
Функции
formatter_opts_for_file(file, opts \\ [])
Возвращает параметры форматирования, которые следует использовать для данного файла.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Tasks.Format.html