Skip to content

Added SLNX and SLNF formats support and migrated to SLNX solution #723

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 6, 2025

Conversation

xperiandri
Copy link
Collaborator

No description provided.

@Copilot Copilot AI review requested due to automatic review settings July 1, 2025 13:51
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for the SLNX solution format by updating tests, migrating solution parsing to use Microsoft.Build.Construction.SolutionFile, removing the Ionide.ProjInfo.Sln dependency, and updating the changelog.

  • Updated test cases to handle both .sln and .slnx files (absolute and relative paths).
  • Modified solution parsing logic in Lint.fs to use SolutionFile.Parse with platform‐specific path adjustments.
  • Removed the Ionide.ProjInfo.Sln package reference and cleaned up associated references.

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/FSharpLint.FunctionalTest/TestApi.fs Updated test cases to parameterize solution file names and expected warnings.
tests/FSharpLint.FunctionalTest.TestedProject/FSharpLint.FunctionalTest.TestedProject.slnx Added a new SLNX format solution file.
src/FSharpLint.Core/FSharpLint.Core.fsproj Removed the Ionide.ProjInfo.Sln dependency and added an embedded resource.
src/FSharpLint.Core/Application/Lint.fs Replaced custom solution parsing with Microsoft.Build.Construction.SolutionFile.Parse and added exception handling.
FSharpLint.slnx Added a new solution file in SLNX format.
FSharpLint.sln Removed the old .sln file in favor of SLNX.
Directory.Packages.props Removed package reference for Ionide.ProjInfo.Sln.
CHANGELOG.md Updated changelog entries to reflect SLNX support and dependency removal.

@xperiandri
Copy link
Collaborator Author

@Numpsy

@Numpsy
Copy link
Contributor

Numpsy commented Jul 1, 2025

Nice

@Numpsy
Copy link
Contributor

Numpsy commented Jul 1, 2025

Does

else if target.EndsWith ".sln" then
need changing to add .slnx as well as .sln ?

@xperiandri
Copy link
Collaborator Author

Yes, I've missed that... Thank you!

@xperiandri
Copy link
Collaborator Author

@Numpsy pushed a commit

@Numpsy
Copy link
Contributor

Numpsy commented Jul 2, 2025

An extra thought: Maybe .slnf files (solution filters) could be added as well? (That could be a separate change afterwards though)

@xperiandri
Copy link
Collaborator Author

Great idea!

@xperiandri
Copy link
Collaborator Author

@Numpsy implemented slnf support

@xperiandri xperiandri changed the title Add SLNX solution format support and migrated to SLNX solution Added SLNX solution format support and migrated to SLNX solution Jul 6, 2025
@xperiandri xperiandri changed the title Added SLNX solution format support and migrated to SLNX solution Added SLNX and SLNF formats support and migrated to SLNX solution Jul 6, 2025
@xperiandri xperiandri merged commit 5c70edc into master Jul 6, 2025
6 of 8 checks passed
xperiandri added a commit that referenced this pull request Jul 11, 2025
## [0.25.0] - 2025-07-11

- Migrate from `Paket` to `Directory.Packages.props` #722 [@xperiandri]
- Migrate to .NET `9.0.201` and FCS `43.9.201` #722 [@xperiandri]
- Write test logs to test context output #722 [@xperiandri]
- Use string interpolation instead of `+` concatenation #724 [@xperiandri]
- Run tests in parallel #728 [@xperiandri]
- Remove `NoPartialFunctions` compiler workaround (#698) [@webwarrior-ws]
- Add `SLNX` and `SLNF` format support and migrate to SLNX solution #723 [@xperiandri]
  Remove `Ionide.ProjInfo.Sln` NuGet package dependency
- Remove `Newtonsoft.Json` NuGet dependency #725 [@xperiandri]
- Add missing rule checks for FL0079-FL0081 #713 [@BennieCopeland]
- Modify `.gitignore` to the Visual Studio standard one #735 [@xperiandri]
- Add basic Copilot instructions and GitHub MCP #726 [@xperiandri]
- Migrate `Fornax` to `0.16.0-beta002` and `FSharp.Formatting` to `20.0.1` #736 [@xperiandri, @Numpsy]
- Update the build instructions to use `dotnet fsi` instead of `fake-cli` #734 [@Numpsy]
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