summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortslilc <tslil@posteo.de>2025-07-26 23:00:27 +0100
committertslilc <tslil@posteo.de>2025-07-26 23:00:46 +0100
commitea924ebfcfab4c612dd91fa90a4022929272fe11 (patch)
tree22861bb4da24348f4595f0cb4836da08b897c68b
parentb0f267570d21f9d4fc1086391cb8448449d9eb41 (diff)
[fish] first go at jj prompt
-rw-r--r--fish/functions/fish_jj_prompt.fish39
-rw-r--r--fish/functions/fish_vcs_prompt.fish12
2 files changed, 51 insertions, 0 deletions
diff --git a/fish/functions/fish_jj_prompt.fish b/fish/functions/fish_jj_prompt.fish
new file mode 100644
index 0000000..7ab024e
--- /dev/null
+++ b/fish/functions/fish_jj_prompt.fish
@@ -0,0 +1,39 @@
+function fish_jj_prompt --description 'Write out the jj prompt'
+ if not command -sq jj
+ return 1
+ end
+
+ if not jj root --quiet &>/dev/null
+ return 1
+ end
+
+ jj log --ignore-working-copy --no-graph --color always -r @ -T '
+ surround(
+ " (",
+ ")",
+ separate(
+ " ",
+ bookmarks.join(", "),
+ if(empty, "∅"),
+ coalesce(
+ surround(
+ "\"",
+ "\"",
+ if(
+ description.first_line().substr(0, 12).starts_with(description.first_line()),
+ description.first_line().substr(0, 12),
+ description.first_line().substr(0, 11) ++ "…"
+ )
+ ),
+ label("description placeholder", "?")
+ ),
+ "|",
+ change_id.shortest(),
+ commit_id.shortest(),
+ if(conflict, "X"),
+ if(divergent, "☇"),
+ if(hidden, "⬚"),
+ )
+ )
+ ' 2>/dev/null
+end
diff --git a/fish/functions/fish_vcs_prompt.fish b/fish/functions/fish_vcs_prompt.fish
new file mode 100644
index 0000000..216244c
--- /dev/null
+++ b/fish/functions/fish_vcs_prompt.fish
@@ -0,0 +1,12 @@
+function fish_vcs_prompt --description "Print all vcs prompts"
+ # If a prompt succeeded, we assume that it's printed the correct info.
+ # This is so we don't try svn if git already worked.
+ fish_jj_prompt $argv
+ or fish_git_prompt $argv
+ or fish_hg_prompt $argv
+ or fish_fossil_prompt $argv
+ # The svn prompt is disabled by default because it's quite slow on common svn repositories.
+ # To enable it uncomment it.
+ # You can also only use it in specific directories by checking $PWD.
+ # or fish_svn_prompt
+end