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