/justl.el

Major mode for driving just files.

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

MELPA

Introduction

justl.el mode is a major mode for driving justfiles. As compared to the just-mode, this mode is built for listing and executing the recipes in the justfile via the transient keymaps. Also works with TRAMP.

https://user-images.githubusercontent.com/737477/132949123-87387b7e-8f7d-45de-ac32-8815d9c1dc5d.png

Installation

It’s available via melpa and can be installed through use-package:

(use-package justl
  :ensure t
  :custom
  (justl-executable "/home/sibi/bin/just"))

Optionally you can install it via quelpa too:

(use-package justl
  :quelpa (justl :fetcher github
                 :repo "psibi/justl.el")

  :custom
  (justl-executable "/home/sibi/bin/just")
  (justl-recipe-width 25))

For doom emacs, you can install as:

(use-package! justl
  :config
  (map! :n "e" 'justl-exec-recipe))

Usage

To list all the recipes present in your justfile, call

M-x justl

You don’t have to call it from the actual justfile. Calling it from the directory where the justfile is present should be enough.

Alternatively if you want to just execute a recipe quickly, call

M-x justl-exec-recipe-in-dir

To execute default recipe, call justl-exec-default-recipe

Shortcuts

On the just screen, place your cursor on a recipe:

h => help popup
? => help popup
g => refresh
e => execute recipe
E => execute recipe with eshell
w => execute recipe with arguments
W => open eshell without executing

Customize

  • Because the help popup is built with transient, you can set and save your choices the same way you would with any other transient dialog.
  • By default, justl searches the executable named just, you can change the justl-executable variable to set any explicit path.
  • You can also control the width of the RECIPE column in the justl buffer via justl-recipe width. By default it has a value of 20.

Future

  • Implement justfile variables related features.

Releases

See the Changelog.org for the list of changes.