Small clean up for terminal tab list lifecycle
- Reuse the same `DisposableStore` across calls to `renderElement`
- Make sure we call `dispose` on the actionbar instead of `clear`. This looks like an oversight
* remove dead code from Transifex
* use @vscode/l10n-dev for XLF operations for extensions
* generated files
* more generated files
* remove dead code
* move l10n-dev to where gulp is
* generated
This moves the label render listener to the template instead of being created for each element. To do this, we also need to store some context info on the current template data
This further improves performance as it avoids registering an extra event and adding to the disposable store for each rendered explorer item
Reduce event listeners created when rendering explorer
Every time an explorer item is rendered, we currently hook up a `themeService.onDidFileIconThemeChange` listener for it. This ends up creating a lot of extra event listeners even though this even it pretty rarely fired
Instead, this PR switches us to have a single listener the re-renders the entire tree. Since this should not be a common event, I believe this is reasonable. Profiling also shows that this cuts both the rendering time and amount of garbage generated
While trying to debug an performance issue with scrolling the explorer, I noticed that the explorer list renderer creates a new `DisposableStore` every time it renders an item
For performance, it's better to create a DisposableStore for each template and then re-use this when rendering elements. This store is cleared in the `disposeElement` function
While rendering, the tree renderer currently creates a `DisposableStore` every time `renderElement` is called. For better performance, we should instead re-use a disposable store that is stored on the template data
I've also moved some cleanup logic to `disposeElement` instead of putting it in this store. This avoids creating and registering extra disposables
* Enforce ILocalizedString usage with f1 property via types
* complete comment
* Visit all symbols when encountering a union type
* use ILocalizedString
* fix tests
Co-authored-by: Alex Dima <alexdima@microsoft.com>
Mark notebook list rendering elementDisposables as disposed
This updates `disposeTemplate` for notebook list rendering to mark the `elementDisposables` as disposed instead of simply clearing them. This is helpful if you are using `TRACK_DISPOSABLES`, and will also log if you try adding to the disposable after it has been disposed of
Also marks more template fields as readonly
This internally makes entrypoint into a single property instead of splitting it across `entrypoint` and `extends`
Also removes unused properties from `INotebookRendererInfo`
* Send breakpoint init requests in parallel
Fix#163248
* Keep serial breakpoint init style when the DA does not support the configurationDone request
* Extract complex setBreakpoints expression
The `asWebviewUri` methods was introduced in VS Code 1.38. It's silly that we still force every single webview to pay the cost of trying to rewrite the old style uris we supported in very old versions of VS Code
Instead I've moved this logic into the extension host and disabled it for all extensions that target VS Code 1.60+ or newer. This means it never applies to internal webviews, notebooks, webview views, or custom editors (these public apis were all introduced after the switch to `asWebviewUri`)