From ea924ebfcfab4c612dd91fa90a4022929272fe11 Mon Sep 17 00:00:00 2001 From: tslilc Date: Sat, 26 Jul 2025 23:00:27 +0100 Subject: [fish] first go at jj prompt --- fish/functions/fish_jj_prompt.fish | 39 +++++++++++++++++++++++++++++++++++++ fish/functions/fish_vcs_prompt.fish | 12 ++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 fish/functions/fish_jj_prompt.fish create mode 100644 fish/functions/fish_vcs_prompt.fish (limited to 'fish') 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 -- cgit v1.2.3