# `Elixir.Mix.Tasks.Prisma`
[🔗](https://github.com/altenwald/prisma/blob/v0.1.0/src/Elixir.Mix.Tasks.Prisma.erl#L5)

Runs Prisma hybrid type and discrepancy analysis on compiled BEAM files.

## Command line options

  * `--mode` - Analysis mode: `hybrid` (default), `gradual`, or `discrepancy`
  * `--format` - Output format: `human` (default), `oneline`, or `json`
  * `--no-color` - Disables ANSI color sequences in output
  * `--color` - Forces ANSI color output
  * `--no-warnings` - Shows only errors (a warning is something the code handles, or that may fail on another system)
  * `--warnings-as-errors` - Fails on warnings too (by default only errors fail)
  * `--no-oxbow` - Disables oxbow (dead/unreachable code and unused clauses) analysis
  * `--oxbow` - Enables oxbow analysis (default: enabled)
  * `--pplt <path>` - Path to extra `.pplt` files (can be repeated)
  * `--env <name>` - Mix environment (default: `dev` or `$MIX_ENV`)

## Configuration

In `mix.exs`:

```elixir
def project do
  [
    ...,
    prisma: [
      mode: :hybrid,
      format: :human,
      oxbow: true,
      color: :auto,
      pplts: []
    ]
  ]
end
```

# `__info__`

```erlang
-spec '__info__'(atom()) -> term().
```

# `__mix_recompile__?`

```erlang
-spec '__mix_recompile__?'() -> boolean().
```

# `parse_args`

```erlang
-spec parse_args([binary() | string()]) -> map().
```

# `parse_mix_config`

```erlang
-spec parse_mix_config([term()]) -> map().
```

# `resolve_ebin_dirs`

```erlang
-spec resolve_ebin_dirs([file:filename_all()]) -> [string()].
```

# `resolve_ebin_dirs`

```erlang
-spec resolve_ebin_dirs([file:filename_all()], map()) -> [string()].
```

# `run`

```erlang
-spec run([binary() | string()]) -> ok.
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
