# `Tia.Config`
[🔗](https://github.com/devaction-labs/tia/blob/v0.1.0/lib/tia/config.ex#L1)

Where the map lives and which files count as global.

Set under the `:tia` key of `project/0` in `mix.exs`. Every key is optional.

  * `:map` - path of the map file, default `".tia/map.json"`
  * `:base` - git ref `mix tia --check` diffs against, default `"main"`
  * `:global_files` - files whose change reruns everything
  * `:extra_global_files` - more such files, added to `:global_files`
  * `:global_globs` - globs whose change reruns everything
  * `:macro_globs` - globs scanned for files that define macros
  * `:macro_markers` - substrings that mark a file as defining macros
  * `:test_globs` - globs of the test files
  * `:root` - project root, default `"."`

List keys replace their default.

# `t`

```elixir
@type t() :: %Tia.Config{
  base: String.t(),
  extra_global_files: [Path.t()],
  global_files: [Path.t()],
  global_globs: [String.t()],
  macro_globs: [String.t()],
  macro_markers: [String.t()],
  map: Path.t(),
  root: Path.t(),
  test_globs: [String.t()]
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Builds a config from the given options; an unknown key raises.

---

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