Nimblesite / Nimblesite/SharpLsp

F# sidecar loads only the first .fsproj discovered — multi-project F# workspaces mostly unanalyzed

Open
#165 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug cluster:fsharp-project-model critical
Dominant language
TypeScript
Stars
132
Forks
5
Avg merge
6h 24m
Merged PRs (30d)
27

Description

From the multi-agent audit (sidecars/SharpLsp.Sidecar.FSharp/FSharpWorkspace.fs ~167): workspace load picks the FIRST .fsproj found, in filesystem-enumeration order. A solution with several F# projects gets exactly one loaded — files from the others check against a synthetic single-file project (no project references, wrong defines), so cross-project navigation and diagnostics silently degrade, and WHICH project wins is nondeterministic across machines.

F# is a first-class citizen: this needs parity with the C# sidecar's whole-solution load — enumerate every .fsproj in the .sln/.slnx (the shared solution reader already exists), maintain FSharpProjectOptions per project, and route file requests to their owning project.

The new e2e fixture create_medium_workspace() (tests/e2e_modules/fixtures_medium.rs) provides a mixed solution to extend for this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with sidecars/SharpLsp.Sidecar.FSharp/FSharpWorkspace.fs around the workspace-loading logic, then compare it with the C# sidecar's whole-solution behavior and the shared solution reader. Extend tests/e2e_modules/fixtures_medium.rs via create_medium_workspace() to cover multiple F# projects. Done means every project is loaded with its own options and file requests route to the owning project.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp, rust
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.