Releases: TimeWarpEngineering/timewarp-source-generators
Releases · TimeWarpEngineering/timewarp-source-generators
v1.0.0-beta.7
Changes
Bug Fixes
-
Fix inherited interface members generation (Closes #27)
- Interface delegation now generates members from ALL inherited interfaces
- For example,
IList<T>now generates all 13+ members fromIList<T>,ICollection<T>, andIEnumerable<T> - Previously only generated 4 members from the direct interface
-
Fix indexer generation (Closes #25)
- Indexers now generate with correct parameter syntax:
public T this[int index] - Fixes CS1551 error ("Indexers must have at least one parameter")
- Enables delegation for interfaces like
IList<T>,IDictionary<K,V>, etc.
- Indexers now generate with correct parameter syntax:
Improvements
- Local NuGet cache - Added
RestorePackagesPathto use local cache instead of global - Improved duplicate detection - Method keys now include return types to handle overloads properly
- Version management - Use $(Version) variable for single source of truth
Documentation
- Comprehensive documentation for interface delegation generator
- Usage examples with code samples
- Requirements and constraints
- Diagnostic error descriptions (TW1001, TW1002, TW1003)
Generated Code Example
Interface delegation with inherited members:
public partial class ListWrapper<T> : IList<T>
{
[Implements]
private readonly List<T> InnerList = new();
}Generates all inherited members:
- ICollection: Add, Clear, Contains, CopyTo, Remove, Count, IsReadOnly
- IEnumerable: GetEnumerator
- IList: IndexOf, Insert, RemoveAt, this[int index]
Known Limitations
IEnumerable.GetEnumerator()(non-generic) requires explicit interface implementation due to return type conflict. This will be addressed in a future update.
Full Changelog
- Fix indexer generation with proper parameters
- Add inherited interface member processing
- Add local NuGet cache configuration
- Update documentation with examples
- Bump version to beta.7
- Use variable for centralized version management
🤖 Generated with Claude Code
v1.0.0-beta.6
Changes
Bug Fixes
- Fix indexer generation in interface delegation (Closes #25)
- Indexers now generate with correct parameter syntax:
public T this[int index] - Fixes CS1551 error ("Indexers must have at least one parameter")
- Enables delegation for interfaces like
IList<T>,IDictionary<K,V>, etc.
- Indexers now generate with correct parameter syntax:
Documentation
- Add comprehensive documentation for interface delegation generator
- Usage examples with code samples
- Requirements and constraints
- Diagnostic error descriptions (TW1001, TW1002, TW1003)
- Add file name rule analyzer documentation
Before/After
Before (broken):
public T this[] // CS1551 error
{
get => field.this[];
}After (fixed):
public T this[int index]
{
get => field[index];
set => field[index] = value;
}Full Changelog
- Fix indexer generation in
GeneratePropertyDelegationmethod - Add
property.IsIndexercheck to detect indexers - Generate correct parameter lists and indexer access syntax
- Add documentation to readme.md
- Bump version to beta.6
🤖 Generated with Claude Code
v1.0.0-beta.5
Changes
- Add interface delegation generator infrastructure with [Implements] attribute
- Refactor build configuration following timewarp-nuru patterns
- Simplify NuGet configuration and remove package lock files
- Update CI/CD workflow for new build structure
- Add MSBuild variables for better path management
- Refactor coding style with explicit type declarations and improved formatting
Features
Interface Delegation Generator
- New
[Implements]attribute for Delphi-style interface delegation - Automatically generates forwarding methods for interface members
- Supports both fields and properties
- Includes diagnostics for proper usage (TW1001, TW1002, TW1003)
Build System Improvements
- Centralized package version management with Directory.Packages.props
- Simplified nuget.config without packageSourceMapping
- MSBuild variables:
$(RepositoryRoot), $ (PackagesDirectory), $(Version) - Clean separation of source and test configurations
🤖 Generated with Claude Code
v1.0.0-beta.4
What's Changed
🔄 Refactored
- Removed HelloWorldGenerator (example code no longer needed)
- Refactored diagnostic IDs for clarity:
- TWG prefix for Source Generators (TWG001)
- TWA prefix for Analyzers (TWA001, TWA002)
✨ Improvements
- Added
*.razor.csfiles to default exclusions for FileNameRuleAnalyzer- Razor component code-behind files must match their .razor file names
📦 Version
- Bumped to v1.0.0-beta.4
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4
v1.0.0-beta.3 - TW0003 Analyzer Fix
What's Changed
- Fixed TW0003 file name analyzer to properly handle editorconfig exclusions
- Changed behavior to merge configured exclusions with defaults instead of replacing them
- Added missing default exclusions for common generated files
Bug Fixes
- Fixed editorconfig reading: Changed from GlobalOptions to file-specific options
- Now merges user-configured exclusions with built-in defaults instead of replacing them
Improvements
- Added default exclusions for:
*.AssemblyInfo.cs*.AssemblyAttributes.cs*.GlobalUsings.g.cs
- Fixed code style warnings in analyzer
- Updated test project configuration
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3
v1.0.0-beta.2 - Symbol Package Fix
🐛 Bug Fixes
- Fixed NuGet publish error by disabling symbol package generation
- Symbol packages (.snupkg) are no longer created, preventing the 400 error from NuGet.org
📦 Installation
dotnet add package TimeWarp.SourceGenerators --version 1.0.0-beta.2🔧 Technical Details
- Set
<IncludeSymbols>false</IncludeSymbols>in Directory.Build.props - Removed
<SymbolPackageFormat>property - Main package continues to publish as
TimeWarp.SourceGenerators
🤖 Generated with Claude Code
v1.0.0-beta.1 - Initial Beta Release
🎉 Initial Beta Release
This is the first beta release of TimeWarp.SourceGenerators, providing powerful C# source generation utilities.
✨ Features
- Delegate generation for high-performance method invocation
- Automatic source code generation for common patterns
- Seamless integration with .NET build process
📦 Installation
dotnet add package TimeWarp.SourceGenerators --version 1.0.0-beta.1🔧 Requirements
- .NET Standard 2.0 compatible
- C# 9.0 or later
📝 Notes
This is a beta release. Please report any issues or feedback on our GitHub repository.
🤖 Generated with Claude Code