-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Been using lazyjj for a short while now, and it's amazing! Such a smooth way to interact with jj and it alleviates the somewhat repetitive commands.
There is an issue/bug however, in that when I do : in lazyjj to run a jj command, and for example run a squash -i, the interface just completely freezes. I suspect because jj opens the diff editor which lazyjj provides no access to. So I am left with no choice but to kill the lazyjj process.
Similar thing happens when I do a squash -f x -t y where both changes have a description. jj in this case would open my $EDITOR to allow me to edit the resulting description, but this also freezes lazyjj.
Same goes with a split operation.
So in short, lazyjj's interface just freezes irrecoverably whenever jj opens another program that requires user input.
I believe a solution to this would and should also work alongside and complement #19 and #4, for example. Since this would leave the possibility to resort to the : without having the interface freeze whenever jj wants to open another program. (As a bonus, this would allow us to use said features already before they are properly integrated into lazyjj).
In my mind, lazyjj could very simply let the opened program entirely replace the interface, and lazyjj would come back after the program terminates. Or maybe lazyjj could open the program in a sort of floating pane ontop of the interface (just like the : already does). Unfortunately, I do not know if and how one can determine that an interactive program has been launched from within lazyjj.
Alternatively, another : command could be provided that does not run the operations in the background, and instead displays the full output in a kind of subshell that the user should close before returning to lazyjj?
Just putting out some ideas here :)