# igniter v0.8.2 - Table of Contents

> A code generation and project patching framework

## GUIDES

- [Home](readme.md)
- [Writing Generators](writing-generators.md)
- [Configuring Igniter](configuring-igniter.md)
- [Documenting Tasks](documenting-tasks.md)
- [Upgrades](upgrades.md)
- [Change Log](changelog.md)

## Modules

- [Igniter](Igniter.md): Tools for generating and patching code into an Elixir project.
- [Igniter.Scribe](Igniter.Scribe.md): Contains functions for use with the `--scribe` option in Igniter.
- [Igniter.Test](Igniter.Test.md): Tools for testing with igniter.
- [Igniter.Upgrades](Igniter.Upgrades.md): Utilities for running upgrades.

- Writing Mix tasks
  - [Igniter.Mix.Task](Igniter.Mix.Task.md): A behaviour for implementing a Mix task that is enriched to be composable with other Igniter tasks.
  - [Igniter.Mix.Task.Args](Igniter.Mix.Task.Args.md): Command line arguments parsed when running an `Igniter.Mix.Task`.
  - [Igniter.Mix.Task.Info](Igniter.Mix.Task.Info.md): Info for an `Igniter.Mix.Task`, returned from the `info/2` callback

- Project modifications
  - [Igniter.Project.Application](Igniter.Project.Application.md): Codemods and tools for working with Application modules.
  - [Igniter.Project.Config](Igniter.Project.Config.md): Codemods and utilities for modifying Elixir config files.
  - [Igniter.Project.Deps](Igniter.Project.Deps.md): Codemods and utilities for managing dependencies declared in mix.exs
  - [Igniter.Project.Formatter](Igniter.Project.Formatter.md): Codemods and utilities for interacting with `.formatter.exs` files
  - [Igniter.Project.IgniterConfig](Igniter.Project.IgniterConfig.md): Tools for reading and modifying the `.igniter.exs` file.
  - [Igniter.Project.MixProject](Igniter.Project.MixProject.md): Codemods and utilities for updating project configuration in mix.exs.

  - [Igniter.Project.Module](Igniter.Project.Module.md): Codemods and utilities for interacting with modules
  - [Igniter.Project.TaskAliases](Igniter.Project.TaskAliases.md): Codemods and utilities for interacting with task aliases in the mix.exs file
  - [Igniter.Project.Test](Igniter.Project.Test.md): Codemods and utilities for interacting with test and test support files
  - [Igniter.Refactors.Elixir](Igniter.Refactors.Elixir.md): Refactors for changes in Elixir
  - [Igniter.Refactors.Rename](Igniter.Refactors.Rename.md): Refactors for renaming things in a project

- Code modifications
  - [Igniter.Code.Common](Igniter.Code.Common.md): General purpose utilities for working with `Sourceror.Zipper`.

  - [Igniter.Code.Function](Igniter.Code.Function.md): Utilities for working with functions.

  - [Igniter.Code.Keyword](Igniter.Code.Keyword.md): Utilities for working with keyword.

  - [Igniter.Code.List](Igniter.Code.List.md): Utilities for working with lists.

  - [Igniter.Code.Map](Igniter.Code.Map.md): Utilities for working with maps.

  - [Igniter.Code.Module](Igniter.Code.Module.md): Utilities for working with Elixir modules
  - [Igniter.Code.Pattern](Igniter.Code.Pattern.md): Pattern-based AST navigation and rewriting powered by ExAST.
  - [Igniter.Code.String](Igniter.Code.String.md): Utilities for working with strings.

  - [Igniter.Code.Tuple](Igniter.Code.Tuple.md): Utilities for working with tuples.

- Extensions
  - [Igniter.Extension](Igniter.Extension.md): Alter igniter's behavior by adding new functionality.
  - [Igniter.Extensions.Phoenix](Igniter.Extensions.Phoenix.md): A phoenix extension for Igniter.

- Library support
  - [Igniter.Libs.Ecto](Igniter.Libs.Ecto.md): Codemods & utilities for working with Ecto
  - [Igniter.Libs.Phoenix](Igniter.Libs.Phoenix.md): Codemods & utilities for working with Phoenix
  - [Igniter.Libs.Swoosh](Igniter.Libs.Swoosh.md): Codemods & utilities for working with Swoosh

- Utilities
  - [Igniter.Util.BackwardsCompat](Igniter.Util.BackwardsCompat.md): Contains functions that we need to use that were introduced in newer Elixir versions.
  - [Igniter.Util.Debug](Igniter.Util.Debug.md): Tools for debugging zippers.
  - [Igniter.Util.IO](Igniter.Util.IO.md): Helpers for working with input/output
  - [Igniter.Util.Install](Igniter.Util.Install.md): Tools for installing packages and running their associated
installers, if present.
  - [Igniter.Util.Loading](Igniter.Util.Loading.md): Utilities for doing operations with loading spinners.

  - [Igniter.Util.Version](Igniter.Util.Version.md): Utilities for working versions and version requirements
  - [Igniter.Util.Warning](Igniter.Util.Warning.md): Utilities for emitting well formatted warnings

## Mix Tasks

- [mix igniter.add](Mix.Tasks.Igniter.Add.md): Adds the provided deps to `mix.exs`
- [mix igniter.add_extension](Mix.Tasks.Igniter.AddExtension.md): Adds an extension to your `.igniter.exs` configuration file.
- [mix igniter.apply_upgrades](Mix.Tasks.Igniter.ApplyUpgrades.md): Applies the upgrade scripts for the list of package version changes provided.
- [mix igniter.gen.task](Mix.Tasks.Igniter.Gen.Task.md): Generates a new igniter task
- [mix igniter.install](Mix.Tasks.Igniter.Install.md): Install a package or packages, running any Igniter installers.
- [mix igniter.move_files](Mix.Tasks.Igniter.MoveFiles.md): Moves any relevant files to their 'correct' location.
- [mix igniter.refactor.rename_function](Mix.Tasks.Igniter.Refactor.RenameFunction.md): Rename functions across a project with automatic reference updates.
- [mix igniter.refactor.rename_module](Mix.Tasks.Igniter.Refactor.RenameModule.md): Rename a module across a project with automatic reference updates.
- [mix igniter.refactor.unless_to_if_not](Mix.Tasks.Igniter.Refactor.UnlessToIfNot.md): Rewrites occurrences of `unless x` to `if !x` across the project.
- [mix igniter.remove](Mix.Tasks.Igniter.Remove.md): Removes the provided deps from `mix.exs`
- [mix igniter.setup](Mix.Tasks.Igniter.Setup.md): Creates or updates a .igniter.exs file, used to configure Igniter for end user's preferences.
- [mix igniter.update_gettext](Mix.Tasks.Igniter.UpdateGettext.md): Applies changes to resolve a warning introduced in gettext 0.26.0

- [mix igniter.upgrade](Mix.Tasks.Igniter.Upgrade.md): Fetch and upgrade dependencies. A drop in replacement for `mix deps.update` that also runs upgrade tasks.

