justl.el
justl.el copied to clipboard
Major mode for driving just files.
NOTE: To avoid having this in the info manual, we use HTML rather than Org syntax; it still appears with the GitHub renderer.
- Introduction
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]]
- Installation
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 as:
#+begin_example elisp (use-package! justl :config (map! :n "e" 'justl-exec-recipe)) #+end_example
- Usage
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.
- Shortcuts
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 eshell w => execute recipe with arguments W => open eshell without executing #+end_example
- Customize
- Because the help popup is built with transient, you can [[https://www.gnu.org/software/emacs//manual/html_node/transient/Saving-Values.html][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 [[file:Changelog.org][Changelog.org]] for the list of changes.