mix формат
Форматирует указанные файлы и шаблоны.
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 \\ [])Source
Возвращает параметры форматирования для данного файла.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.12.0/Mix.Tasks.Format.html