* labels: fix caching of unintended formatters
`this.formatters` was the same list instance stored in the memo, so we
could cache things we didn't want to. I believe this caused #156135,
since things we _intend_ to cache from the extension host are parsed
from JSON and cannot be circular.
Fixes#156135
* labels: rev label storage to avoid previous bugs
Fixes#155844
* fixup! tets
Fixes#156914
I don't really understand what `initializeWebViewState` is doing here but there are two things:
- I've removed a list of renderers it creates and then never uses
- I've removed the part where it calls back into `initializeMarkup`. This should have already been called during `_warmupViewport`
* Fix notebook execution test failures
An error thrown in an event handler did not cause the test to fail, using DeferredPromise. Adjusting the api event to account for Unconfirmed vs Pending states. And accounting for onDidChangeNotebookDocument being fired multiple times during a test, causing the test to complete early while execution was still happening.
Fixes#157067
* Remove log
When saving a file using the SimpleFileDialog (for example, when editing a file over SSH), if the directory doesn't exist, the user currently has to cancel saving, create the directory, then try saving again.
This adds a prompt to allow the user to create any missing directories from the save dialog directly.
Tested with the TestResolver in Code - OSS.
I wasn't able to get the Remote - SSH extension working in Code - OSS, but it should work there, since FileService.writeFile calls mkdirp to create missing folders, so this should work with all remote providers.
Fixes#71425.
Co-authored-by: Alex Ross <alros@microsoft.com>
Fixes#133698
For untitled/interactive, we should use the workspace as the base uri instead of using the notebook uri (which isn't meaningful in this case)
* Changed the method in the indexTreeModel.test.ts
* Edited the method and the location
Co-authored-by: najmieh <najmieh.safarabadi@protonmail.com>
Co-authored-by: Connor Peet <connor@peet.io>
This makes `addDisposableListener` use an abortcontroller to unregister the listener. This lets us avoid having to null out references to the handler and the node
This type is only used by the list. It makes sense to move it into the list class instead of having it as a generic concept. We can always move it back if needed