Skip to content

Conversation

@BoykoAlex
Copy link
Contributor

No description provided.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enhances the Spring index update notification system to include information about which projects were affected by index changes, enabling more efficient partial tree refreshes instead of full reloads.

  • Modified the SpringIndexUpdatedNotification type to include IndexUpdateDetails with affected project information
  • Implemented partial tree refresh logic in both VSCode and Eclipse views that updates only affected projects
  • Refactored state management by replacing BootLsState with a more focused SpringIndexState in Eclipse

Reviewed Changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
notification.ts Added IndexUpdateDetails interface and updated notification type signature
structure-tree-manager.ts Implemented partial tree refresh logic with affected project handling
nodes.ts Refactored node classes, converted methods to properties, removed base SpringNode class
explorer-tree-provider.ts Simplified by removing expansion state tracking logic
apiManager.ts Updated emitter type to use IndexUpdateDetails instead of void
api.d.ts Updated Spring index event signature
SpringMetamodelIndexingTest.java Changed from List to Set accessor methods in test assertions
JsonNodeHandler.java Enhanced node ID assignment to prioritize project ID
SpringSymbolIndex.java Changed affected projects from List to LinkedHashSet to avoid duplicates
IndexUpdatedParams.java Changed type from List<String> to Set<String> for affected projects
SpringIndexState.java New state management class for Spring index updates
STS4LanguageClientImpl.java Updated to use new SpringIndexState and DefaultLanguageClient
LanguageServerCommonsActivator.java Added singleton SpringIndexState instance
StructureClient.java Updated parameter record to include affected projects collection
StereotypeNodeDeserializer.java Added PROJECT_ID constant
StereotypeNode.java Added getProjectId() helper method
RefreshAction.java Updated refresh call signature
LogicalStructureView.java Implemented partial refresh logic for affected projects
GroupingAction.java Updated refresh call signature
DelegatingStreamConnectionProvider.java Removed obsolete state management code
BootLsState.java Deleted - replaced by SpringIndexState
BootLanguageServerPlugin.java Removed BootLsState field and getter

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// Serves 2 purposes: non UI trigerred refresh as a result of the index update and a UI trigerred refresh
// The UI trigerred refresh needs to preceed with an event fired such that tree view would kick off a new promise getting all new root elements and would show progress while promise is being resolved.
// The index update typically would have a list of projects for which index has changed then the refresh can be silent with letting the tree know about new data once it is computed
// If the index update event doesn't have a list of project then this is an edge case for which we'd show the preogress and treat it like UI trigerred refresh
Copy link

Copilot AI Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'preogress' to 'progress' and 'trigerred' to 'triggered'.

Copilot uses AI. Check for mistakes.
BoykoAlex and others added 5 commits November 6, 2025 21:52
…rc/org/springframework/tooling/boot/ls/views/LogicalStructureView.java

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Alex Boyko <[email protected]>
…ee-manager.ts

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Alex Boyko <[email protected]>
…ee-manager.ts

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Alex Boyko <[email protected]>
…ee-manager.ts

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Alex Boyko <[email protected]>
…e.commons/src/org/springframework/tooling/ls/eclipse/commons/SpringIndexState.java

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Alex Boyko <[email protected]>
@BoykoAlex BoykoAlex merged commit 6e98255 into main Nov 7, 2025
4 checks passed
@BoykoAlex BoykoAlex deleted the index-changed branch November 7, 2025 06:26
BoykoAlex added a commit that referenced this pull request Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants