README.md
# CodeFrame
Build code frames that point to a specific location. Inspired by [@babel/code-frame](https://github.com/babel/babel/tree/master/packages/babel-code-frame). This is
mainly useful for error locations (syntax errors, etc).
Screenshot of colorized output:
![Picture of the code frame](./screenshot.png)
## Installation
The package can be installed by adding `code_frame` to your list of
dependencies in `mix.exs`:
```elixir
def deps do
[{:code_frame, "~> 0.1.0"}]
end
```
Don't forget to run `mix deps.get` to fetch the new dependencies.
## Usage
Building a custom codeframe is pretty straightforward. Just pass the string and
specify the line you want to draw attention to and thats it.
```elixir
defmodule Foo do
import CodeFrame
def main() do
my_string = "foo\nbar\nbaz"
frame = build(my_string, 1)
IO.puts(frame)
end
end
```
`build()` has the following options:
| Option | Description |
|---|---|
| `lines_before: integer` | Number of lines to show **before** the highlighted one. |
| `lines_after: integer` | Number of lines to show **after** the highlighted one. |
| `colors: boolean` | Force enabling/disabling of colorized output. |
## License
`MIT`, see [License file](./LICENSE.md).