Initially, test IDs were just the strings given by the extension, but
a while ago we changed to the "extId", which is a concatenation of the
ID the extension provided, with all the parent IDs and the test
controller ID, so that we can uniquely identify any given test.
```
someController\0parent1\0parent2\0my test case
```
Because of this, we can derive the parent extId from any test's extId,
but we never got rid of this duplicate information. In this PR,
we do.
* testing: greatly improve decoration syncing
- Mark a descoration as synced to a range on _any_ assignment to its
range. https://github.com/microsoft/vscode/issues/161320
- Improve re-usage of testing decorations. Better performance and less
unnecessary flickering.
* tweak
* add `WorkspaceEditMetadata` and use it for `applyEdit`,
https://github.com/microsoft/vscode/issues/112109
* fix compilo in tests
* workspace edits from updating paths are marked as refactoring fyi @mjbvz
For #147248
When stepping through the liveshare code, we figured out they do not appear to be using `save`, `saveAs`, or `backup` (they return empty results for these)
This PR removes this part of the proposal so we can track just the parts of the api that they are using
* Use canonical uris when applying bulk edits
* move `reviveWorkspaceEditDto` into mainThreadBulkEdit
* make `reviveWorkspaceEditDto` require the uri ident service
* add test
fixes https://github.com/microsoft/vscode/issues/158845
* revive first, otherwise the `is` checks don't work
* fix tests
So, two problems. One, we didn't actually fully re-sync testing
decorations when explicitly updated by the extension, since we attempted
to get the test URI from the _diff_ which would never actually be
present on single updates (since the test item URI cannot be changed).
I think this was the main problem people saw.
So, this fixes that. It also applies a change so that we only sync the
ranges to what the extension gives us if the document version is up to
date with what was in the extension host. This should avoid syncing
decorations to the wrong place--instead just use VS Code's own decoration
location tracking until we get a newer update from the extension.
Fixes#158475Fixes#153304
* Add canonical workspace identifier proposed API
* Use canonical id to store and resume edit sessions
* Add git extension workspace identity provider
* Fix warning incorrectly showing up
* Make auto resume behavior opt in
* * Create a separate service
* Accept WorkspaceFolder instead of URI
* Return string instead of object
* Make edit session restores resilient to provider registration races
* Introduce an activation event
* Activate contributing extension before using provider
* `CanonicalWorkspaceIdentity` -> `EditSessionIdentity`
* Show progress while resuming edit session
* Store edit session even if extension will take care of opening target workspace
* Address most of PR feedback
* `IEditSessionsWorkbenchService` -> `IEditSessionsStorageService`
* Unregister provider in renderer
* Split out proposal into new `editSessionIdentityProvider.d.ts`
* Fix bad merge
* Always show progress in window
* Convert URI schemes
* tests - convert history tracker to in-memory (#149712)
* fix warnings from missing service
* sqlite slowness
* disable flush on write in tests unless disk tests
* more runWithFakedTimers
* disable flush also in pfs
* fix compile
* * derive workspace dto with util
* be strict when defining reference version ids (must be set to a value or undefined)
* relax `ResourceNotebookCellEdit`
* Add mute icon to notification center toolbar
* Add placeholder mute method
* Add config service support
* Refactor mute toggle behavior
* More refactoring
* Add hack for switching actions on toggle
* Use do-not-disturb icons
* Update status bar icon
* Add comment for hack todo
* Add experimental tag
* Update setting name references
* Fix typo
* Update status bar icon and filter all errors
* Update icons
* Updates icon and toggle behavior
* Update codicons ttf
* cleanups
* Use UI state instead of setting
* Show window progress instead of notification
* Update Storage scopes
* Update Storage scopes
* Refactor to use NotificationService
* Minor fixes
* Update tests
* Address PR feedback
* Update tests
* 💄
* 💄
* zen - use dnd mode for filtering
* set filters right on startup
Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com>
* introduce application config model
- application configuration is active and used only in non default profiles
- read/write application scoped settings only from application layer and not from user layer
- extensions get application scoped values as global values
- settings editor does not show application scoped settings in non default profle
- added unit tests
* fix tests
* Add entries functions for vscode.d.ts collection types
Fixes#151802
* Spelling
* Enable lib.iterable in vscode.d.ts
* Switch to use `Symbol.iterator` instead of `entries`
* Use extends Iterable in more places
* Fixing testItemCollection types
* Fixing exthost testing