README.md

# Iris

A tool for visualizing your Elixir codebase.

![Iris for Elixir screenshot](./screenshot.png)

The following features are implemented.

- List all Applications in elixir lib
- List all Modules in an application
- List all methods in an application
- Generate & View inbound and outbound calls from a selected method
- Click on outbound call method to expand the method and view its outbound calls
- Show Method documentation
- Show Module documentation
- Detect and denote recursive methods with a recursion icon
- Detect and denote methods that have documentation with a docs icon

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `iris` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:iris, "~> 0.1.0"}
  ]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/iris>.

## Usage

Execute the following command after ensuring `iris` is added to your dependency list.

```
mix iris
```

For more info use the verbose flag as such:

```
mix iris -v
mix iris --verbose
```

## Contribution

If you encounter any issue, raise a github issue with a minimal example that reproduces the issue.

This project implementation can be improved a lot, pull requests that improve the codebase/address any issues are welcome.

## License

Iris source code is released under the Apache 2 License.

Any content of Iris, or any content generated by any "Derivative Works" (as specified in the Apache 2 License), must include a direct, readable, and visible link to the [Iris repository](https://github.com/rahultumpala/iris) on each rendered material.

<hr>

This project is heavily inspired by [ExDoc](https://github.com/elixir-lang/ex_doc) and uses some of its source code in generating and viewing documentation. The icon used to denote recursive methods is from [Grommet](https://seekicon.com/artist/grommet).