Skip to content

fix(gendoc): accept .slnx solutions in the documentation generator#15

Merged
Reefact merged 1 commit into
mainfrom
claude/solution-format-validation-scoikt
Jul 5, 2026
Merged

fix(gendoc): accept .slnx solutions in the documentation generator#15
Reefact merged 1 commit into
mainfrom
claude/solution-format-validation-scoikt

Conversation

@Reefact

@Reefact Reefact commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Contexte

SolutionErrorDocumentationGenerator.GetErrorDocumentationFrom validait l'extension du fichier de solution uniquement contre .sln et levait une ArgumentException sinon. Or ReadSolutionProjects énumère les projets via dotnet sln list, qui gère .sln et .slnx uniformément — comme l'affirme d'ailleurs son propre commentaire (« handles both .sln and .slnx uniformly »).

Conséquence : une solution .slnx valide (le nouveau format XML de Visual Studio) était rejetée avant même d'atteindre l'étape d'énumération, rendant ce format inutilisable. Contradiction interne du code.

Changement

  • La garde d'extension accepte désormais .sln et .slnx ; le message d'erreur est mis à jour en conséquence.
  • Les filtres de solution (.slnf) restent volontairement exclus : la sous-commande dotnet sln ne les traite pas (ils sont consommés par dotnet build/test/run), les accepter ferait échouer ReadSolutionProjects plus loin avec un message moins clair.

Tests

Ajout d'un [Theory] GetErrorDocumentationFromAcceptsSolutionFormats couvrant .sln et .slnx : il vérifie que les deux extensions franchissent la validation (aucune ArgumentException n'est levée pour l'extension). Le test existant qui rejette une extension inattendue reste valide.

🤖 Generated with Claude Code

GetErrorDocumentationFrom validated the extension against ".sln" only and
threw ArgumentException otherwise, contradicting ReadSolutionProjects (which
enumerates projects via "dotnet sln list" and handles .sln and .slnx
uniformly). Valid .slnx solutions were therefore rejected before reaching
the enumeration step.

Accept both .sln and .slnx. Solution filters (.slnf) stay excluded: the
"dotnet sln" subcommand does not process them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MshxEQnwdvTu8tkZPtt6PM
@Reefact Reefact merged commit a6a46f5 into main Jul 5, 2026
2 checks passed
@Reefact Reefact deleted the claude/solution-format-validation-scoikt branch July 5, 2026 19:30
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