From a93d15819b0dfcc9ef184765dc71ac9ba476f07a Mon Sep 17 00:00:00 2001 From: Kelvin Schoofs Date: Wed, 8 Jul 2020 03:49:14 +0200 Subject: [PATCH] Update documentation in preparation of v1.18.0 of the extension --- README.md | 28 ++++++++++++++++++++++++++++ media/tasks.png | Bin 0 -> 28097 bytes media/terminals.png | Bin 0 -> 26183 bytes 3 files changed, 28 insertions(+) create mode 100644 media/tasks.png create mode 100644 media/terminals.png diff --git a/README.md b/README.md index 8a3f658..d3851ec 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,13 @@ This extension makes use of the new FileSystemProvider, added in version 1.23.0 ## Summary * Use a remote directory (over SSH) as workspace folder +* Instantly create one or multiple terminals on the same host * A built-in UI to add, edit and remove configurations * Use agents, including Pageant and OpenSSH on Windows * Use private keys (any supported by ssh2-streams, including PuTTY's PPK) * Get prompted for a password/passphrase (plain text password aren't required) * Easily create configurations that reference a PuTTY session/configuration +* Create tasks that run commands on a remote host (remote version of "shell" task type) * Have multiple SSH (and regular) workspace folders at once * Make use of SOCKS 4/5 and HTTP proxies and connection hopping @@ -37,3 +39,29 @@ This will add a Workspace folder linked to a SSH (SFTP) session: ![Workspace folder added](./media/screenshot-explorer.png) +## Changelog 1.18.0 +Starting from version 1.18.0 of the extension, a few new features are added: + +### Terminals +The configurations for SSH file systems can now also be used to spawn terminals: + +![Terminals](./media/terminals.png) + +Currently the working directory will always be the user's home directory, similar to directly connecting to the server over ssh. I'm thinking about making it automatically move to the `root` directory if possible. + +### New task type +This extension adds a new task type `ssh-shell` which can be used to run commands on a configured remote host: + +![Terminals](./media/tasks.png) + +Currently only the `command` field is supported. The goal is to replicate part of the `shell` task structure, e.g. an `args` array, support for `${workspaceFolder}`, ... + +### Connection reuse +The way the extension connects to the remote hosts is reworked. The extension tries to only keep one connection per host active, with one connection supporting the file system access and a bunch of terminals. If the saved configuration has changed after a connection has been established, the next terminal/filesystem will start a new connection, but leave the first one alive and fine. + +A handy enhancement this brings is that prompts (e.g. for passwords) should only happen once. As long as a connection is open (either by having a connected file system or terminal to the host), opening e.g. a new terminal skips the whole authentication phase and is basically instant. + +Connections without an active file system or terminals will automatically be closed somewhere after 5 seconds. If you're planning on running a bunch of tasks on a host without having a workspace folder connected to it, keeping a terminal open is handy and advised. + +### Logging +Logging has slightly improved, resulting in better logs that help with resolving issues. \ No newline at end of file diff --git a/media/tasks.png b/media/tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..d465905c16da6e9e536cfb83621406d28394228a GIT binary patch literal 28097 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 literal 0 HcmV?d00001 diff --git a/media/terminals.png b/media/terminals.png new file mode 100644 index 0000000000000000000000000000000000000000..d8a68f561e3f1dd197af1e81db74d40d335a60df GIT binary patch literal 26183 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 kS(I$*1