psibi / justl.el

Major mode for driving just files.
GNU General Public License v3.0
65 stars 13 forks source link
emacs just justfile

NOTE: To avoid having this in the info manual, we use HTML rather than Org syntax; it still appears with the GitHub renderer.

+HTML: MELPA

justl.el mode is a major mode for driving [[https://github.com/casey/just][justfiles]]. As compared to the [[https://melpa.org/#/just-mode][just-mode]], this mode is built for listing and executing the recipes in the justfile via the [[https://magit.vc/manual/transient][transient]] keymaps. Also works with [[https://www.gnu.org/software/tramp/][TRAMP]].

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

It's available via [[https://melpa.org/#/justl][melpa]] and can be installed through [[https://github.com/jwiegley/use-package][use-package]]:

+begin_example elisp

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

+end_example

Optionally you can install it via [[https://github.com/quelpa/quelpa][quelpa]] too:

+begin_example elisp

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

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

+end_example

For [[https://github.com/doomemacs/doomemacs][doom emacs]], you can install by adding the following to your config.el:

+begin_example elisp

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

+end_example

and the following to your packages.el:

+begin_example elisp

(package! justl :recipe (:host github :repo "psibi/justl.el"))

+end_example

To list all the recipes present in your justfile, call

+begin_example elisp

M-x justl

+end_example

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

+begin_example elisp

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

+end_example

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

To execute multiple recipes in parallel, customize justl-per-recipe-buffer to create dedicated buffers named /just-RECIPE/. This is useful to manage long running process.

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

+begin_example

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

+end_example

See the [[file:Changelog.org][Changelog.org]] for the list of changes.