ANSI output and raw mode for quarkusDev plugin

Hi Everyone,

I am wondering if there is any way to get more control over the console from a plugin, in particular my plugin forks a process that attempts to:

  • Set the terminal to raw mode, so that I can respond to keystrokes immediately
  • Use ANSI escape characters to draw my own status area at the bottom of the screen.

This is related to our new continuous testing feature, which displays its own status screen at the bottom of the console, and allows the user to press a key to perform actions such as re-run the tests. This works great in maven, but fails when running from gradle, as I can’t use ANSI escape characters to clear the status area, and I can’t set the terminal into raw mode to respond to commands without the user also pressing enter.

This means the user experience for gradle is significantly less polished than it is for maven, but I can’t figure out how to fix this.