Skip to content

perf(theme): incremental theme registry rescan (skip unchanged files) #425

Description

@ZhuchkaTriplesix

Parent

Part of #414

Problem

Folder watcher debounce → loadAvailableThemes → full loadThemeDefinitions + LocalExtensionRegistry.reload() + read/parse every theme JSON + FNV hash of full content. Parsed theme LRU exists for loadTheme, not for definition scanning.

Evidence

  • lib/core/theme/theme_registry_service.dart
  • lib/core/theme/theme_folder_watcher.dart
  • lib/core/theme/theme_controller.dart

Acceptance

  • Unchanged files (mtime / contentHash) are skipped on refresh
  • Theme-only watcher events do not reload the entire extension registry when unnecessary
  • Cold full scan still works; hot path is incremental

Suggested fix

Incremental scan by mtime/contentHash; keep definition index; avoid full extension reload for theme-only events.

Metadata

Metadata

Labels

filesystemTheme parser epic label: filesystemperformanceTheme parser epic label: performancethemeTheming, colors, VS Code themes

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions