enhance: share TextMate registry across editors to reduce memory usage (#2396)#2397
Closed
gadfly3173 wants to merge 1 commit into
Closed
enhance: share TextMate registry across editors to reduce memory usage (#2396)#2397gadfly3173 wants to merge 1 commit into
gadfly3173 wants to merge 1 commit into
Conversation
sourcegit-scm#2396) Each text editor previously created its own `RegistryOptionsWrapper` with an independent grammar cache, causing redundant TextMate grammar loading when viewing files of the same type in different editors. Over long sessions this accumulated hundreds of megabytes of duplicated grammar data in the managed heap. - Make `RegistryOptionsWrapper` a lazy singleton per theme (dark/light) so all editors share one grammar cache. - Move `LastScope` tracking from the shared wrapper to a per-editor `ref string` parameter to avoid cross-editor state conflicts. - Add `DisposeInstallation` helper for consistent cleanup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each text editor previously created its own
RegistryOptionsWrapperwith an independent grammar cache, causing redundant TextMate grammar loading when viewing files of the same type in different editors. Over long sessions this accumulated hundreds of megabytes of duplicated grammar data in the managed heap.RegistryOptionsWrappera lazy singleton per theme (dark/light) so all editors share one grammar cache.LastScopetracking from the shared wrapper to a per-editorref stringparameter to avoid cross-editor state conflicts.DisposeInstallationhelper for consistent cleanup.