# Changelog

## v0.3.0 [2020-02-02]

### Added

Adds the property `ignore_pattern` to the `ex_rerun` configuration:

```elixir
config :ex_rerun,
  ...
  ignore_pattern: ~r{\.?#(.)}
```

which provides some finer granularity to ignore temporary or autogenerated files
that happens to have a file type that is in the `file_types` list. For example,
the pattern above, `~r{\.?#(.)}`, ignores Emacs auto-save and interlocking files
as these files happen to have similar filenames as the files they are related to
but prepended with a `#` or `.#`. The default value for `ignore_pattern` is
`nil`, meaning no further filtering is performed.

Bumps the version Elixir version used for compiling `ex_rerun` to 1.9.

## v0.2.0 [2019-03-24]

### Changed

Changes the configuration format to the following:

```elixir
config :ex_rerun,
  scan_interval: 4000,
  silent: false,
  file_types: [".ex", ".exs", ".eex", ".json"],
  paths: ["lib", "priv"],
  tasks: [:elixir]
```

where:

- `tasks` enumerates the mix tasks to run each time a code modification
  occurs, possible built-in values are: `:elixir`, `:test`, `:escript`,
  where
  + `:elixir` recompiles Elixir source code (same as `Mix.Tasks.Compile.Elixir`),
  + `:test` reruns any mix tests in the project (same as `Mix.Tasks.Test`), and
  + `escript` rebuilds a escript file (same as `Mix.Tasks.Escript.Build`).

Furthermore, `tasks` can also include custom mix tasks. For example, the hex
package [elm_compile](https://hex.pm/packages/elm_compile) defines the
`Mix.Tasks.Compile.Elm` task which allows mix to also compile Elm files in a mix
project.

## v0.1.0 [2019-01-12]

### Added

- Support for monitoring Elixir and other source files and running mix tasks on
  code modification changes using the following configuration parameters:

```elixir
# Default values
config :ex_rerun,
  scan_interval: 4000,
  silent: false,
  elm: false,
  test: false,
  escript: false,
  paths: ["lib", "priv"],
  file_types: [".ex", ".exs", ".eex", ".json"]
```

where:

- `scan_interval` specifies the number of ms to wait between rerun checks,
- `silent` toggles whether to print every time `ex_rerun` recompiles,
- `elm` toggles whether to run the elm compilation task on recompile, requires
  [elm_compile](https://hex.pm/packages/elm_compile) to be installed as a
  project dependency,
- `test` toggles whether to also run mix test after each recompilation,
- `escript` toggles whether to run the escript compilation task on recompile,
- `paths` lists which folders to monitor, and
- `file_types` lists which files that will trigger a rerun when changed.
