For a long time the account id wasn't handled correctly. It should be a string, but the API returns a number. This ensures it's a string and does some migration logic.
* WIP: show hover with actions on preview editor tab
* Refactor to support `"workbench.editor.showTabs": "single"`
* Manage hover delegates by index to handle closing correctly
* Add some dispose calls
* Experiment with a quieter hover
* Fix problems caused by commented-out code
* Safer use of editor title in hover markdown
* Subtler link to preview mode doc
* Use gear icon and go oto settings editor
* Make clickable hover easier to mouse onto
* Remove linkHandler experiment
* Use simplified hover on single-tab mode too
* Simplify now that we aren't adding statusbar commands to hovers
* Reinstate lost blank line
---------
Co-authored-by: Benjamin Christopher Simmonds <44439583+benibenj@users.noreply.github.com>
* wordHighlighter: fix queries against disposed models (use URIs)
* add blur logic + clear old workerReq logic from when highlighting was only singleFile
* imports
* dispose models that we ref for the occurrence request
* WHOOPS don't do that, it destroys every editor hah
* WIP - saving my work
* Extract HistoryItemRef picker
* Extract Repository picker
* Improve history item ref picker rendering
* Refactor color map
* Refresh the graph when the filter changes
* Push minor fix
A big change, but a good one... This addresses some core issues around how we manage multiple PublicClientApplications (which are an object that should be created for each set of clientId,authority). Previously, we were doing some pretty nasty things to detect when a new PCA was created/deleted and as a result it would cause infinite loops and the likes...
Now we've focused on managing that in SecretStorage by looking for a `publicClientApplications` key. This is all encapsulated in the new `PublicClientApplicationsSecretStorage`.
Since we no longer relied on that hack, we still needed some way to have a PCA inform that:
* accounts have changed
* the last account was removed (signaling that this PCA could be disposed of in `PublicClientApplicationsSecretStorage`)
Both of these events have been added to `CachedPublicClientApplication` (now in its own file) and are being used. (replacing the old `_accountChangeHandler` which was hacky... true events are cleaner).
Last thing in the eventing space is that I try to minimize calls to `_storePublicClientApplications` so to not spam events across SecretStorage. You can see this in my usage of `_doCreatePublicClientApplication` over `getOrCreate`.
Couple random other things:
* `changed` accounts are properly bubbled up in `_onDidChangeSessionsEmitter` which is needed when a token is refreshed
* `getSessions` when no scopes are passed in no longer causes new tokens to be minted
* we use to only remove the first account we found but in some cases there may be the same account across different PCAs, so there's a `return` that's removed in `authProvider.ts` that fixes this bug
* Logging is clearer and more verbose (in a good way)
* lower limit for how many cells we can pre-cache symbols for, update cache when out of date
* update tests
* fix tests
* pre-cache symbols for the goto symbols view
* test precaching
* reset cached flag
- Don't set a config option for update interval. We don't let the one
in core be configurable, don't see a huge need for this.
- Don't start the server when the update is available
- Fix some race conditions
- Fix some clippy lints on Rust 1.81