# Eunomo

The default Elixir formatter has the philosophy of not modifying non metadata parts of the AST.
`Eunomo` does not adhere to this philosophy and is meant to be used as an extension to the default
formatter. As of now, the single use case is to sort `import`, `alias` and `require` definitions

See []( for further documentation & for the source code.

## Installation

The package can be installed by adding `eunomo` to your list of dependencies in `mix.exs`:

def deps do
    {:eunomo, only: :dev, "~> 1.0.0"}

## Usage

### Elixir `>= 1.13.0` & version `1.0.0`

Uses Elixir formatter [plugin

# .formatter.exs
  # Usage of new formatter plugin system in Elixir `>= 1.13.0`.
  plugins: [
  inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]

Running `mix format` is going to take over as usal from here. All `mix format` options also apply to
Eunomo plugins.

### Elixir `< 1.13.0` & version `0.1.3 `

Before Elixir version `1.13.0`, there was no way to hook plugins into the default formatter. Hence
two Mix tasks were provided: [`mix
eunomo.gen.config`]( & [`mix
eunomo`]( This approach does not play
nicely with umbrella applications.