Skip to content

feat: add serverRunning() API (v0.14) for progressive loading#4372

Merged
fbricon merged 1 commit intoredhat-developer:mainfrom
chagong:progressive-project-loading
Mar 30, 2026
Merged

feat: add serverRunning() API (v0.14) for progressive loading#4372
fbricon merged 1 commit intoredhat-developer:mainfrom
chagong:progressive-project-loading

Conversation

@chagong
Copy link
Copy Markdown
Contributor

@chagong chagong commented Mar 27, 2026

Summary

Add serverRunning() promise to the ExtensionAPI (v0.14) that resolves when the language server process is alive and can handle requests, even before project imports complete. This enables dependent extensions (like vscode-java-dependency) to show progressive content during long imports instead of waiting for full initialization.

Changes

extension.api.ts

  • Bumped extensionApiVersion to '0.14'
  • Added readonly serverRunning?: () => Promise<boolean> to the API interface

apiManager.ts

  • Added serverRunningPromiseResolve field
  • Created serverRunningPromise and serverRunning async function in initialize()
  • Added resolveServerRunningPromise() method

standardLanguageClient.ts

  • Calls apiManager.resolveServerRunningPromise() at the top of the StatusNotification.type handler, before the switch statement

Context

This is part of a 3-repo change for progressive project loading:

  1. eclipse-jdtls/eclipse.jdt.lsServer-side progressive notifications
  2. This PRserverRunning() API (v0.14)
  3. microsoft/vscode-java-dependency — Client-side progressive tree view rendering

API Difference

API Resolves when
serverReady() Server fully initialized (imports complete, build done)
serverRunning() Server process alive, first status notification received

Extensions that want to show progressive content during import can await serverRunning() instead of serverReady().

Add serverRunning() promise to ExtensionAPI that resolves when the server
process is alive and can handle requests, even before project imports
complete. This enables dependent extensions to show progressive content
during long imports instead of waiting for full initialization.

Bump extensionApiVersion to 0.14.
@fbricon fbricon added this to the End March 2026 milestone Mar 30, 2026
@fbricon fbricon merged commit 6f8b4eb into redhat-developer:main Mar 30, 2026
2 checks passed
@fbricon
Copy link
Copy Markdown
Collaborator

fbricon commented Mar 30, 2026

thanks @chagong!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants