Skip to content

Conversation

@randlee
Copy link
Owner

@randlee randlee commented Jan 15, 2026

Summary

  • Complete CLI options for the diff command
  • New class subcommand for class-to-class comparison
  • ClassMatcher with multiple matching strategies

Sprint 5 Deliverables

5A: Class Matcher

  • ClassMatcher with ExactName, Interface, Similarity, Auto strategies
  • Support for partial classes, nested classes, generics
  • ClassMatchOptions and ClassMatchResult models

5B: Class Command

  • New roslyn-diff class subcommand
  • Parse file.cs:ClassName syntax
  • --match-by, --interface, --similarity options

5C: CLI Options

  • --ignore-whitespace (-w)
  • --ignore-comments (-c)
  • --context (-C) for context lines
  • --mode (-m) for auto/roslyn/line
  • --rich (-r) for Spectre.Console output
  • Comprehensive help text with examples

Test plan

  • 361 tests passing (147 Core + 130 Output + 84 CLI)
  • ClassMatcher tests (39 tests)
  • ClassCommand tests (23 tests)
  • DiffCommand option tests (57 tests)

🤖 Generated with Claude Code

randlee and others added 2 commits January 15, 2026 00:14
Sprint 5A: Class Matcher
- ClassMatcher with multiple matching strategies
- ExactName, Interface, Similarity, and Auto strategies
- Support for partial classes, nested classes, generics
- ClassMatchOptions and ClassMatchResult models
- 39 comprehensive unit tests

Sprint 5B: Class Command
- New `class` subcommand for class-to-class comparison
- ClassSpecParser for "file.cs:ClassName" syntax
- --match-by, --interface, --similarity options
- Integration with output formatters
- 23 unit tests

Sprint 5C: CLI Options
- --ignore-whitespace (-w) option
- --ignore-comments (-c) option
- --context (-C) option for context lines
- --mode (-m) option (auto/roslyn/line)
- --output (-o) and --out-file options
- --rich (-r) option for Spectre.Console output
- Comprehensive help text with examples
- 57 unit tests

Test Results: 361 tests passing
- Core: 147 tests (+39)
- Output: 130 tests
- CLI: 84 tests (+80)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sprint 6A: Edge Case Tests
- SyntaxErrorTests for parse error handling
- EncodingTests for UTF-8/UTF-16 and Unicode
- WhitespaceTests for whitespace-only changes
- ModernCSharpTests (records, primary constructors, raw strings, etc.)
- PreprocessorTests for #if/#endif directives
- GenericTests for generic classes/methods
- 160 new edge case tests

Sprint 6B: Integration Tests
- New RoslynDiff.Integration.Tests project
- End-to-end C#, VB.NET, and line diff tests
- ClassCommand integration tests
- Output format integration tests
- Error handling tests
- 115 integration tests

Sprint 6C: Documentation
- Complete README.md with installation and usage
- docs/usage.md - Detailed CLI documentation
- docs/output-formats.md - Format descriptions
- docs/api.md - Programmatic API reference
- docs/architecture.md - System design overview
- docs/performance.md - Performance characteristics
- CHANGELOG.md - Version history
- samples/ - Example files and outputs

Sprint 6D: Performance Tests
- RoslynDiff.Benchmarks project with BenchmarkDotNet
- CSharpDifferBenchmarks for diff performance
- SyntaxComparerBenchmarks for comparison speed
- OutputFormatterBenchmarks for formatting
- PerformanceTests.cs for timeout validation

Test Results: 650 tests passing
- Core: 321 tests (+160)
- Output: 130 tests
- CLI: 84 tests
- Integration: 115 tests (new)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@randlee randlee merged commit c4c0409 into main Jan 15, 2026
1 check passed
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