# ExAST v0.11.0 - API Reference

## Modules

- [ExAST](ExAST.md): Search, replace, and diff Elixir code by AST pattern.
- [ExAST.Comment](ExAST.Comment.md): A source comment with line/column metadata.
- [ExAST.Comments](ExAST.Comments.md): Extracts comments from Elixir source while preserving source positions.

- [ExAST.Diff](ExAST.Diff.md): Syntax-aware diffing for Elixir source code.
- [ExAST.Diff.Edit](ExAST.Diff.Edit.md): A single syntax-aware edit between two Elixir sources.

- [ExAST.Diff.Patcher](ExAST.Diff.Patcher.md): Applies diff edits to produce patched source code.
- [ExAST.Diff.Result](ExAST.Diff.Result.md): The result of comparing two Elixir sources.

- [ExAST.Index](ExAST.Index.md): Candidate-index metadata for ExAST patterns and selectors.
- [ExAST.Index.Plan](ExAST.Index.Plan.md): Indexable summary of an ExAST pattern or selector.
- [ExAST.Index.Terms](ExAST.Index.Terms.md): Conservative structural terms extracted from Elixir AST and ExAST patterns.
- [ExAST.Patcher](ExAST.Patcher.md): Finds and replaces AST patterns in source code.
- [ExAST.Pattern](ExAST.Pattern.md): AST pattern matching with captures.
- [ExAST.Query](ExAST.Query.md): SQL-like query API for AST search.
- [ExAST.Selector](ExAST.Selector.md): CSS-like AST selector builder.
- [ExAST.Selector.CommentMatcher](ExAST.Selector.CommentMatcher.md): Comment text matcher used by comment predicates.

- [ExAST.Selector.Predicate](ExAST.Selector.Predicate.md): Predicate used by `ExAST.Selector.where/2`.
- [ExAST.Sigil](ExAST.Sigil.md): Provides the `~p` sigil for compile-time pattern parsing.
- [ExAST.Symbol.Definition](ExAST.Symbol.Definition.md): A module, function, macro, callback, or attribute definition found in Elixir code.
- [ExAST.Symbol.Reference](ExAST.Symbol.Reference.md): A local or remote reference found in Elixir code.
- [ExAST.Symbols](ExAST.Symbols.md): Extracts lightweight definition and reference facts from Elixir source or AST.

## Mix Tasks

- [mix ex_ast.diff](Mix.Tasks.ExAst.Diff.md): Computes a syntax-aware diff between two Elixir files.
- [mix ex_ast.replace](Mix.Tasks.ExAst.Replace.md): Replaces AST pattern matches in Elixir source files.
- [mix ex_ast.search](Mix.Tasks.ExAst.Search.md): Searches for AST patterns in Elixir source files.

