Skip to content

feat: add .slnx solution format support#112

Open
slang25 wants to merge 2 commits into
sourcegraph:mainfrom
slang25:slang25/scip-dotnet-pr110-feedback
Open

feat: add .slnx solution format support#112
slang25 wants to merge 2 commits into
sourcegraph:mainfrom
slang25:slang25/scip-dotnet-pr110-feedback

Conversation

@slang25
Copy link
Copy Markdown

@slang25 slang25 commented May 12, 2026

Continues @idg2's work in #110 and addresses the review feedback from @jupblb.

Summary

Add support for the XML-based .slnx solution format introduced in .NET 9 / Visual Studio 17.10.

  • Upgrade Roslyn from 4.4.0 to 5.3.0MSBuildWorkspace.OpenSolutionAsync() gained native .slnx support in Roslyn 5.0.0+ (dotnet/roslyn#77326)
  • Add .slnx to auto-discoveryFindSolutionOrProjectFile now finds .slnx files alongside .sln
  • Add .slnx to restore and loading — solution restore and OpenSolutionAsync paths treat .slnx same as .sln
  • Drop net6.0/net7.0 TFMs — Roslyn 5.x requires net8.0+; both .NET 6 and 7 are end-of-life
  • Update CI workflow — drop net6.0/net7.0 from .github/workflows/test.yml to match the supported TFMs (this is the additional change requested in the review on feat: add .slnx solution format support #110)
  • Add snapshot test — new syntax-slnx test fixture validates SCIP indexing via .slnx
  • Bump version to 0.2.14

Motivation

The .slnx format is the default for dotnet new sln in .NET 10 and is increasingly adopted in modern .NET projects. Without this change, scip-dotnet cannot index codebases that use .slnx, requiring manual workarounds (passing individual .csproj files instead).

Credit

The substantive work here is by @idg2 (original PR #110) — authorship of that commit is preserved. This PR adds the CI workflow update requested by @jupblb in review.

Test plan

  • Existing syntax snapshot test passes (.sln path unchanged)
  • New syntax-slnx snapshot test passes (.slnx auto-discovered and indexed)
  • dotnet build succeeds on net8.0/net9.0/net10.0
  • .github/workflows/test.yml updated to match the dropped TFMs

🤖 Generated with Claude Code

idg2 and others added 2 commits May 12, 2026 15:21
Upgrade Roslyn from 4.4.0 to 5.3.0 to enable MSBuildWorkspace.OpenSolutionAsync()
to parse the XML-based .slnx format introduced in .NET 9 / VS 17.10.

Changes:
- Bump Microsoft.CodeAnalysis.* packages from 4.4.0 to 5.3.0
- Bump System.Configuration.ConfigurationManager from 7.0.0 to 9.0.0
- Add .slnx to auto-discovery, restore, and solution loading checks
- Drop net6.0/net7.0 TFMs (Roslyn 5.x requires net8.0+; both are EOL)
- Bump version to 0.2.14
- Add snapshot test using .slnx format

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Roslyn 5.x requires net8.0+; aligns CI matrix with the TFMs supported
by the project after the .slnx upgrade. Addresses review feedback on
sourcegraph#110.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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