···11-{ pkgs, ... }: {
11+{pkgs, ...}: {
22 programs.jujutsu = {
33 enable = true;
44···3131 commit implements:
3232 PROMPT
3333 '';
3434+ };
3535+3636+ fix.tools = {
3737+ mix-format = {
3838+ command = ["mix" "format" "--stdin-filename" "$path"];
3939+ patterns = ["glob:**/*.ex" "glob:**/*.exs"];
4040+ };
4141+4242+ nix-fmt = {
4343+ command = ["nix" "fmt"];
4444+ patterns = ["glob:**/*.nix"];
4545+ };
3446 };
35473648 aliases = {
···3951 push = ["git" "push"];
4052 sync = [
4153 "rebase"
4242- "--source" "roots(trunk()..mutable())"
4343- "--destination" "trunk()"
5454+ "--source"
5555+ "roots(trunk()..mutable())"
5656+ "--destination"
5757+ "trunk()"
4458 ];
45594660 # Put changes from `@` into another change
···53675468 # 'jj sandwich xyz' to move xyz into the megamerge in parallel to everything
5569 # else. See notes on 'megamerge()' above for how it's resolved.
5656- sandwich = [ "rebase" "-B" "megamerge()" "-A" "trunk()" "-r"];
7070+ sandwich = ["rebase" "-B" "megamerge()" "-A" "trunk()" "-r"];
5771 };
58725973 revset-aliases = {
···8498 # they're custom and will never go upstream, but are correctly published as part
8599 # of the fork; Tn is where the main bookmark points. Finally, we have changes P1
86100 # ... Pn which are private and should never be pushed upstream at all.
8787- #
101101+ #
88102 # In this case, sandwich will fail because 'reachable(stack(), merges())' will
89103 # resolve to {M1, M2}, which is an invalid argument for 'rebase -B' due to not
90104 # having an all: prefix modifier. So to handle that case, we allow the user
···141155 ),
142156 )
143157 )
144144- '';
158158+ '';
145159 };
146160147161 templates = {
148148- draft_commit_description =''
162162+ draft_commit_description = ''
149163 concat(
150164 coalesce(description, default_commit_description, "\n"),
151165 surround(