Skip to content

lazyjj gets stuck when jj opens editor #155

@niveK77pur

Description

@niveK77pur

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 :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions