- Moved everything I could into the class itself.
- Improve the logging situation a bit.
- Switch some trace logs to debug.
- Get debug port from message arguments.
- Move destroy logic into the class itself
- Improve logging a bit
- Remove the record option; we should always do this when using
permessage-deflate.
- Let debug port be null (it can be null in the message args).
- Add setSocket so we don't have to initiate a connection to set it.
- Move inflate bytes logic into the class itself.
- Instead of a single listener per terminal that handles all events VS
Code now has a single listener per event that handles that event for
all terminals.
- Refactor Terminal to extend TerminalProcess to avoid duplicating
methods. This required some modifications to TerminalProcess to access
the pid and title and to set the ID.
- Remove our async change to shutdown. This was necessary to avoid
disposing too early but shutdown already calls dispose so it turns out
we didn't need to call it ourselves.
- Rename methods to match the command strings.
- Fix getting system shell (uses process.env).
- Use a single bufferer. Since it already supports buffering for
multiple terminals there's no need to have one per terminal.
- Remove replay/reconnect logic. It's broken and unused so there doesn't
seem much point in trying to refactor it to fit the changes right now.
While terminals work now there are still a lot of todos.
It seems reaching into lib/vscode for the types caused tsc to establish
watches that caused it to restart over and over while vscode was
building.
The strategy used here is to symlink it instead which is the same thing
we do for the proxy agent.
native-keymap and keytar are only used in the electron process,
so we don't need them. This allows us to drop our dependencies on
libx11-dev, libxkbfile-dev, and libsecret-dev.
It looks like before, the ISetTerminalLAyoutInfoArgs and
IGetTerminalLayoutInfoArgs were part of the terminal interface, but now they're
just interfaces so this commit fixes the imports to get them from
vs/platform/terminal/common/terminalProcess.