Initial Setup#2
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Initial repository/setup PR establishing the solution structure for the Immediate.Injections source generator/analyzers, shared attribute surface area, and the test + CI/CD scaffolding needed to build/package/test the project.
Changes:
- Added Shared project API surface (attributes + enums) intended to drive DI registration generation.
- Added Generators/Analyzers projects plus an initial generator pipeline that renders a
ServiceCollectionextensions file from a Scriban template. - Added test projects (analyzer/generator helpers + Verify initialization) and GitHub Actions workflows for build/test/release.
Reviewed changes
Copilot reviewed 47 out of 49 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Immediate.Injections.Tests/Utility.cs | Test utilities for reference assemblies and DI metadata references across TFMs. |
| tests/Immediate.Injections.Tests/ModuleInitializer.cs | Initializes Verify configuration and source generator verification in tests. |
| tests/Immediate.Injections.Tests/Immediate.Injections.Tests.csproj | Multi-targeted unit test project with Roslyn testing + Verify dependencies. |
| tests/Immediate.Injections.Tests/GeneratorTests/GeneratorTestHelper.cs | Helper to run the generator and assert incremental behavior. |
| tests/Immediate.Injections.Tests/AnalyzerTests/AnalyzerTestHelpers.cs | Helpers for analyzer and suppressor tests (with optional diagnostic enabling). |
| tests/Immediate.Injections.FunctionalTests/Immediate.Injections.FunctionalTests.csproj | Functional tests project wiring analyzers/generators as analyzers. |
| src/Immediate.Injections/Immediate.Injections.csproj | Packaging project configuration (NuGet metadata + packing analyzer/generator outputs). |
| src/Immediate.Injections.Shared/Immediate.Injections.Shared.csproj | Shared library multi-targeting and dependency wiring. |
| src/Immediate.Injections.Shared/DuplicateStrategy.cs | Defines duplicate registration behavior options. |
| src/Immediate.Injections.Shared/RegistrationStrategy.cs | Defines service registration strategy options. |
| src/Immediate.Injections.Shared/RegistrationDefaultsAttribute.cs | Defines assembly-wide defaults attribute for registration behavior. |
| src/Immediate.Injections.Shared/RegisterSingletonAttribute.cs | Singleton registration attribute (non-generic) with optional defaults override. |
| src/Immediate.Injections.Shared/RegisterSingletonAttribute{TService}.cs | Generic singleton registration attribute shape. |
| src/Immediate.Injections.Shared/RegisterSingletonAttribute{TService,TImplementation}.cs | Generic singleton registration attribute shape with explicit implementation type. |
| src/Immediate.Injections.Shared/RegisterScopedAttribute.cs | Scoped registration attribute (non-generic). |
| src/Immediate.Injections.Shared/RegisterScopedAttribute{TService}.cs | Generic scoped registration attribute shape. |
| src/Immediate.Injections.Shared/RegisterScopedAttribute{TService,TImplementation}.cs | Generic scoped registration attribute shape with explicit implementation type. |
| src/Immediate.Injections.Shared/RegisterTransientAttribute.cs | Transient registration attribute (non-generic). |
| src/Immediate.Injections.Shared/RegisterTransientAttribute{TService}.cs | Generic transient registration attribute shape. |
| src/Immediate.Injections.Shared/RegisterTransientAttribute{TService,TImplementation}.cs | Generic transient registration attribute shape with explicit implementation type. |
| src/Immediate.Injections.Shared/RegisterServicesAttribute.cs | Marker attribute intended for methods that register services. |
| src/Immediate.Injections.Generators/Immediate.Injections.Generators.csproj | Generator project configuration including embedded Scriban templates. |
| src/Immediate.Injections.Generators/ImmediateInjectionsGenerator.cs | Incremental generator entrypoint and assembly defaults pipeline. |
| src/Immediate.Injections.Generators/ImmediateInjectionsGenerator.Models.cs | Generator internal model records for assembly defaults. |
| src/Immediate.Injections.Generators/ImmediateInjectionsGenerator.Transform.cs | Transforms RegistrationDefaultsAttribute into generator-friendly defaults. |
| src/Immediate.Injections.Generators/ImmediateInjectionsGenerator.Render.cs | Renders the service collection extensions source from the Scriban template. |
| src/Immediate.Injections.Generators/Templates/ServiceCollectionExtensions.sbntxt | Scriban template for generated IServiceCollection extension entrypoint. |
| src/Immediate.Injections.Generators/Properties/launchSettings.json | Roslyn component debug profile targeting functional tests. |
| src/Immediate.Injections.Analyzers/Immediate.Injections.Analyzers.csproj | Analyzer project configuration baseline. |
| src/Immediate.Injections.Analyzers/DiagnosticIds.cs | Placeholder for analyzer diagnostic IDs. |
| src/Immediate.Injections.Analyzers/AnalyzerReleases.Unshipped.md | Analyzer release notes placeholder. |
| src/Immediate.Injections.Analyzers/AnalyzerReleases.Shipped.md | Analyzer shipped release notes placeholder. |
| src/Immediate.Injections.Analyzers/Properties/launchSettings.json | Roslyn component debug profile targeting functional tests. |
| src/Common/Utility.cs | Common helper extensions used by analyzer/generator projects. |
| src/Common/SyntaxExtensions.cs | Placeholder for syntax extensions shared code. |
| src/Common/ITypeSymbolExtensions.cs | Placeholder for type symbol extensions shared code. |
| readme.md | Initial README with badges scaffold. |
| license.txt | MIT license file addition. |
| Immediate.Injections.slnx | Solution definition listing projects and root files. |
| global.json | Test runner configuration (Microsoft.Testing.Platform). |
| Directory.Packages.props | Central package version management across TFMs. |
| Directory.Build.props | Repo-wide build settings (nullable, analyzers, CI warnings-as-errors, etc.). |
| .editorconfig | Code style and analyzer severity configuration. |
| .gitignore | Standard build/test/Verify artifacts ignores. |
| .gitattributes | Basic text normalization attributes. |
| .github/workflows/build.yml | CI build/test/coverage workflow. |
| .github/workflows/release.yml | Release workflow to pack/push NuGet + create GitHub release. |
| .github/dependabot.yml | Dependabot configuration for NuGet and GitHub Actions. |
| .github/FUNDING.yml | GitHub Sponsors configuration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.