Native diagnostic watching misses newly created SDK source files
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp, rust, typescript
Research direction
Start by tracing the native watcher’s Touched event through the host’s Changed handling and the SDK source membership reload path. Then read the real SDK/native-protocol lifecycle regression described in the issue and run it on Windows; done means the new file’s CS0101 diagnostic is reported after refresh and its prior result is retired when the file is removed.
Written by the indexing model from the issue text.
Description
Creating an implicit C# SDK source under a loaded solution can emit a native diagnostic refresh while the next successful workspace pull omits the file entirely.
Reproduced through the real Rust LSP host, published Roslyn/FCS sidecars and real SDK projects on Windows:
- Load the mixed solution and confirm existing closed-file compiler errors.
- Create Core/NativeAdded.cs without sending an editor watched-file notification.
- Independently build Core.csproj and confirm CS0103 in the new source.
- Observe the standard workspace/diagnostic/refresh and request workspace diagnostics.
Actual: zero reports for NativeAdded.cs, despite its real compiler error. Existing sources and the unsaved F# overlay remain correctly reported.
Expected: the next successful report includes the new SDK source and its CS0103, and removing the file explicitly retires its prior result.
The shared native watcher deliberately combines creation and modification into Touched. The host maps that to Changed, but previously reloaded SDK source membership only for explicit Created/Deleted events. Updating text for an unknown file cannot adopt its already-loaded owning project.
The real SDK/native-protocol lifecycle regression fails at the exact missing-report assertion before the fix. Compare touched source identities with current compiler metadata once per batch and reload when a source is unknown; existing source edits keep their ordinary update path.
- Dominant language
- TypeScript
- Stars
- 168
- Forks
- 9
- Avg merge
- 2h 49m
- Merged PRs (30d)
- 60
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
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
farion1231/cc-switch#8829 ·
Maintainers usually reply within 1 day
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverOpendoc-audit enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100