HI Vitalii,
To implement the Debug Server Protocol there are a few different use cases where I need a console or terminal.
1) The debugger can ask the IDE to run an arbitrary program, e.g. the Python debugger may ask the IDE to launch python with specific command line arguments. In this case I need to create a normal terminal connected to the python process, stdin and stdout.
2) The debugger can support a CLI to the debugger itself. There are two cases for this:
2a) The debugger creates a PTY and connects one end to the debugger and the other end to a terminal. See
https://sourceware.org/gdb/current/onlinedocs/gdb/Interpreters.html#index-new_002dui for a little bit about GDB's use
2b) This is like the Debug Console view in VS Code. Everything typed in gets sent by the IDE to the debugger, and the debugger responds with output. It differs from 2a in that the input/output is directed over the JSON channel that connects the IDE to the debugger.
3) The debugger has logging output that it wants to show to the user. This case does not have a user input.
2b is the most important case at the moment. The rest will come in the future.
All the cases, apart from 2a are done in Eclipse IDE using the Console view and 2a (which currently only exists in Eclipse CDT) uses the Terminal view.
BTW this is all part of getting a stable prototype of an initial contribution for the Debug Server Protocol support in Che. We (Kichwa Coders) will be presenting this at CheConf in a few weeks (
https://www.eclipse.org/che/checonf18/sessions.html "Debug Everything in the Cloud with Eclipse Che")
Thanks for your help and guidance on this.
Jonah