This adds support for nesting remote authorities via passing through
ExecServers.
- An authority like `wsl+Ubuntu@tunnel+my-pc` is parsed into
the chain `tunnel+my-pc` -> `wsl+Ubuntu`
- An extension for the `tunnel` prefixed is resolved. We expect the
resolver to implement the new `resolveExecServer` method.
- Resolution continues. `wsl+Ubuntu` is the last resolver, so the
`resolve()` method is called and the exec server is passed in its
`RemoteAuthorityResolverContext`
Currently the ExecServer is typed as `unknown` in the API. _Maybe_ we
want to make it real API in the future, but I don't want to do this
until it's generalized beyond a single consumer (WSL).
This also has adds utility method `getRemoteExecServer` to get an exec
server for a given remote. This is used by WSL to probe information
about a tunneled machine even when WSL isn't opened (e.g. to get the
list of distros to shop.)
The new `@` handling should not break remotes. WSL doesn't use `@` in
its remotes, SSH and containers both hex-encode information contained
in authorities. Codespaces does put the codespace name in the remote
authority, but it doesn't seem like it's possible to get `@` in those
names, since they're generated either randomly when opening a template
or from a repo name (where @ is not allowed).
* nb kind support -- wip
* allow notebook codeactions around single cell edit check
* move notebook code action type out of editor
---------
Co-authored-by: rebornix <penn.lv@gmail.com>
Currently remote extensions use a hack to read the product.json, but
this can't be done on web. Instead expose proper API to get the
appQuality and appCommit.
For web, it seems the most feasible direction for resolvers as we make
existing remote extensions 'web enabled' is to allow them to run in the
extension host. However, in no case will there just be a simple
websocket we can connect to ordinarily.
This PR implements a first cut at 'inline' resolvers where messaging is
done in the extension host. I have not yet tested them on web, where I
think some more wiring is needed to mirror desktop. Also, resolution of
URLs is not in yet. I think for this we'd want to do some service-worker
-based 'loopback' approach to run requests inline in the remote
connection, similar to what I did for tunnels...
Resolvers are not yet run in a dedicated extension host, but I think
that should happen, at least on web where resolvers
will always(?) be 'inline'.
Most of the actual changes are genericizing places where we specified
the "host" and "port" previously into an enum. Additionally, instead of
having a single ISocketFactory, there's now a collection of them, which
the extension host manager registers into when a managed resolution
happens.
* feat: Initial pass at Debug Focus, listener for thread or stack frame
selection (#63943)
Add debug.onDidChangeDebugFocus. May provide ids for session, thread,
and stackFrame, as appropriate.
Fixes: #63943 api should provide thread/stack frame id (paraphrasing)
* chore: small comment tweaks in proposal
* fix: bad copy/paste in proposed. moved types out of 'debug' namespace
* fix: separate 'debugFocus' into thread and stackFrame specific
listeners, and create separate contexts for each
* fix: Revert prev change, switch to single api with union type
This reverts commit c308bc3a90.
* fix: rename accessor from 'focus' to 'stackFrameFocus'
* fix: review comments; remove unused type, imrpove comments
* fixL review comments, type change: sessionID property cannot be undefined
* Remove comments
---------
Co-authored-by: Rob Lourens <roblourens@gmail.com>
For #179430
Adds two new UX components:
- An inline progress icon shown when a drop operation takes over 500ms. This replaces the notification. You can click on it to cancel the drop
- Post drop, a drop feedback icon that lets you drop the file in a different way. This lets you drop the file as plain text for instance instead of as a markdown link
* introduce a SemanticSimilarity provider model
* have raceCancellablePromises also cancel if it rejects
* remove extensionId for now
* remove unused code
* Allow individual comments to be marked as draft
This is a proposal for #171166.
* Remove `hasDraftComments` from `CommentThread`
* Rename `CommentVisibility` to `CommentState`
* Rename `CommentVisibility` to `CommentState`
* Add api proposal check
---------
Co-authored-by: Alex Ross <alros@microsoft.com>