diff options
| author | tslilc <tslil@posteo.de> | 2025-07-26 23:00:27 +0100 |
|---|---|---|
| committer | tslilc <tslil@posteo.de> | 2025-07-26 23:00:46 +0100 |
| commit | ea924ebfcfab4c612dd91fa90a4022929272fe11 (patch) | |
| tree | 22861bb4da24348f4595f0cb4836da08b897c68b | |
| parent | b0f267570d21f9d4fc1086391cb8448449d9eb41 (diff) | |
[fish] first go at jj prompt
| -rw-r--r-- | fish/functions/fish_jj_prompt.fish | 39 | ||||
| -rw-r--r-- | fish/functions/fish_vcs_prompt.fish | 12 |
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 |
