Failed language-server startup leaks build discovery observers
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 57/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- devtools
Research direction
The issue identifies the failed language-server startup path and the existing Windows VS Code lifecycle test, “a server that cannot launch leaves the status bar in Error, never Running.” Start by locating client.start(), build observer registration, and the cleanup on rejection, then run that lifecycle test. Done means observers are disposed on startup failure, retained by extension subscriptions after success, and the regression passes.
Written by the indexing model from the issue text.
Description
A failed language-server launch retains the build-completion notification listener, workspace-folder listener, and Signals effect. They are registered before client.start(), but the rejection path only disposes Razor HTML resources.
The existing unchanged real Windows VS Code lifecycle test a server that cannot launch leaves the status bar in Error, never Running reproduces it: context.subscriptions.length is 4, expected 1. Status assertions pass; the failure is retained build observers.
Fix: aggregate build observers into a Disposable, register before startup, dispose it on startup rejection, and add it to extension subscriptions only after successful startup. Private regression: unchanged failing test RED -> GREEN, then all 23 lifecycle and real build-completion refresh cases pass with the rebuilt extension bundle.
- Dominant language
- TypeScript
- Stars
- 168
- Forks
- 9
- Avg merge
- 2h 25m
- Merged PRs (30d)
- 59
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Nimblesite/SharpLsp
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Nimblesite/SharpLsp#468 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#461 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Nimblesite/SharpLsp#447 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Nimblesite/SharpLsp#444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#442 ·
Maintainers usually reply within 1 day
All issues in Nimblesite/SharpLsp
Similar issues
-
ready
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
wheresrhys/totf#1214 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CodeChefVIT/ffcs#281 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
endora-commerce/endora-commerce#451 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
vetro-protocol/vetro-monorepo#1007 ·
Maintainers usually reply within 1 day