diff --git a/functions/_tide_item_jj.fish b/functions/_tide_item_jj.fish new file mode 100644 index 00000000..aa1b413c --- /dev/null +++ b/functions/_tide_item_jj.fish @@ -0,0 +1,33 @@ +function _tide_item_jj + if not command -sq jj; or not jj root --quiet &>/dev/null + return 1 + end + + set jj_status (jj log -r@ -n1 --ignore-working-copy --no-graph --color always -T ' + separate(" ", + bookmarks.map(|x| if( + x.name().substr(0, 10).starts_with(x.name()), + x.name().substr(0, 10), + x.name().substr(0, 9) ++ "…") + ).join(" "), + tags.map(|x| if( + x.name().substr(0, 10).starts_with(x.name()), + x.name().substr(0, 10), + x.name().substr(0, 9) ++ "…") + ).join(" "), + surround("\"","\"", + if( + description.first_line().substr(0, 24).starts_with(description.first_line()), + description.first_line().substr(0, 24), + description.first_line().substr(0, 23) ++ "…" + ) + ), + change_id.shortest(), + commit_id.shortest(), + if(conflict, "conflict"), + if(divergent, "divergent"), + if(hidden, "hidden"), + )' | string trim) + set jj_info $jj_status + _tide_print_item jj $tide_jj_icon' ' "($(string join ', ' $jj_info))" +end