This fixes an issue where webviews for custom editors did not have any associated extension information, which caused them try reading `file:` uri resources instead of remote uri resources
- Add a resolveExternalUri function to the opener service. This service already has to know how to resolve external uris so it makes sense that the function lives there
- Move the tunneling logic for desktop into window.ts
- Make result of resolve disposable
From #71060
**Problem**
ISuggestDataDto currently uses opaque property names in order to keep the size of the json object down. This makes the code difficult to read
**Proposed Fix**
Use a const enum to map human readable property name to the short names actually used for the json
* Custom Editor exploration
For #77131
Adds a prototype of custom editors contributed by extensions. This change does the following:
- Introduces a new contribution point for the declarative parts of a custom editor
- Adds API for registering a webview editor provider. This lets VS Code decided when to create a webview editor
- Adds an `openWith` command that lets you select which editor to use to open a resource from the file explorer
- Adds a setting that lets you say that you always want to use a custom editor for a given file extension
- Hooks up auto opening of a custom editor when opening a file from quick open or explorer
- Adds a new extension that contributes a custom image preview for png and jpg files
Still needs a lot of UX work and testing. We are also going to explore a more generic "open handler" based approach for supporting custom editors
Revert
* Re-use existing custom editor if one is already open
* Don't re-create custom editor webview when clicking on already visible custom editor
* Move customEditorInput to own file
* First draft of serializing custom editor inputs
* Use glob patterns instead of simple file extensions for matching custom resoruces for custom editors
* Add descriptions
* Try opening standard editor while prompting for custom editor
* Make sure we hide image status on dispose
* Make sure we restore editor group too
* Use glob patterns for workbench.editor.custom
* Allow users to configure custom editors for additional file types
* Use filename glob instead of glob on full resource path
* Adding placeholder for prompt open with
* Add enableByDefault setting for editor contributions
* Enable custom editors by default and add `discretion` enum
Changes `enableByDefault` boolean to a `discretion` enum. This should give more flexibility if we want other options (such as forcing a given custom editor to always be used even if there are other default ones)
* Allow custom editors to specify both a scheme and filenamePattern they are active for
* Rework custom editor setting
* Don't allow custom editors to be enabled for all resources by a config mistake
* Replace built-in image editor with one from extension
* Adding reopen with command
* Improve comment
* Remove commented code
* Localize package.json and remove image
* Remove extra lib setting from tsconfig