- Make version property mandatory in extension profiles (like in web)
- Extend extensions clean up to profiles
- Add necessay changes in other services to support extension cleanup:
- Introduce INativeServerExtensionManagementService
- Extend profile change event to provide added and removed profiles
- Introduce policy configuration using policy model
- Use policy configuration while reading, inspecting and writing configuration
- Adopt json settings editor
* variables: allow resolving `extensionDir`
This allows us to fix https://github.com/microsoft/vscode-remote-release/issues/5516#issuecomment-911597917
It enables a new replacement in the format `${extensionDir:<id>}` which
will expand to the filesystem path where the extension is stored. This
involved churn, since now resolution is always synchronous (where before
the terminal took a synchronous-only path.)
Additionally, changes were needed to inject this information in the
variable resolver. As part of this I made the extension host resolver
(used by debug and tasks) its own extension host service.
* fixup! preserve object key order in resolution, add extensionDir support
* fixup! address pr comments
* fixup! address pr comments
* fixup! address pr comments
* config: fix config replacement only working for first variable per line
* fixup! fix unit tests
- Extract extension scanning, validating and nls replacement into `INativeExtensionsScannerService`
- Use `INativeExtensionsScannerService` for scanning in Desktop and Remote extension managements and extension hosts
- Represent invalid extensions in Extensions UI
- Remove prompting for invalid extensions while scanning in Desktop Extension Host in Dev mode