rebar3_lfe

[![CI/CD][gh-actions-badge]][gh-actions] Hex.pmLFEErlangLicense

[![Project Logo][logo]][logo-large]

A modern rebar3 plugin for LFE projects

⚠️ IMPORTANT! ⚠️

✨ Why rebar3_lfe?

Quick Start

%% rebar.config
{plugins, [
    {rebar3_lfe, "0.5.x"}
]}.

{deps, [
    {lfe, "2.2.0"}
]}.
rebar3 lfe compile    # Compile your code
rebar3 lfe repl       # Start REPL
rebar3 lfe eval '(+ 1 2 3)'  # Evaluate LFE expressions
rebar3 lfe ltest      # Run tests

See Full Quick Start →

Features

🔥 Smart Compilation

$ rebar3 lfe compile
Compiling 10 LFE files...
Progress: 10/10 (100%)
Compiled 10 files in 1.25s

$ touch include/records.lfe
$ rebar3 lfe compile
Compiling 3 LFE files...  # Only files using the header
Compiled 3 files in 0.3s

🤖 Updated REPL

REPL support in rebar3_lfe has changed slightly in 0.5.0:

There is a new Makefile target that is included with all generated projects (rebar3 new lfe-*) which makes it easier for projects to use rlwrap and prompt customisations:

make repl

LFE REPL

Autocompletion support is currently in progress; when complete, example usage will be shown here.

📦 Package System

Optional!

Organize your code by directories:

src/
├── myapp.lfe           → myapp module
└── myapp/
    ├── core.lfe        → myapp.core module
    └── utils/
        └── helpers.lfe → myapp.utils.helpers module

🎨 Great Errors

src/myapp.lfe:10: error: undefined function foo/1
  Did you mean: bar/1?

⚡ All the Commands

Core:

Scripts & Escripts:

Releases:

Utilities:

See All Commands →

Documentation

Examples

Compatibility

Erlang/OTP rebar3 r3lfe Status
28 3.25 0.5.0 ✅ Tested
27 3.25 0.5.0 ✅ Tested
26 3.25 0.5.0 ✅ Tested
25 3.22 0.5.0 ✅ Tested
24 3.22 0.5.0 ✅ Tested

Breaking Changes from 0.4.x

Version 0.5.0 is a complete rewrite with breaking changes:

Migration Guide →

Contributing

See contributing.

git clone https://github.com/lfe/rebar3.git rebar3_lfe
cd rebar3_lfe
rebar3 compile
make check

Support

License

Apache 2.0 - See LICENSE