Skip to content

marvinhagemeister/elixir-code-frame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeFrame

Build code frames that point to a specific location. Inspired by @babel/code-frame. This is mainly useful for error locations (syntax errors, etc).

Screenshot of colorized output:

Picture of the code frame

Installation

The package can be installed by adding code_frame to your list of dependencies in mix.exs:

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.

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.

About

Make beautiful errors by showing where they are in the code

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages