Phymnary.SugarPot.RoslynComponents
1.0.0
dotnet add package Phymnary.SugarPot.RoslynComponents --version 1.0.0
NuGet\Install-Package Phymnary.SugarPot.RoslynComponents -Version 1.0.0
<PackageReference Include="Phymnary.SugarPot.RoslynComponents" Version="1.0.0" />
<PackageVersion Include="Phymnary.SugarPot.RoslynComponents" Version="1.0.0" />
<PackageReference Include="Phymnary.SugarPot.RoslynComponents" />
paket add Phymnary.SugarPot.RoslynComponents --version 1.0.0
#r "nuget: Phymnary.SugarPot.RoslynComponents, 1.0.0"
#:package Phymnary.SugarPot.RoslynComponents@1.0.0
#addin nuget:?package=Phymnary.SugarPot.RoslynComponents&version=1.0.0
#tool nuget:?package=Phymnary.SugarPot.RoslynComponents&version=1.0.0
Phymnary.SugarPot.RoslynComponents
Shared Roslyn utilities for analyzers and source generators in the SugarPot solution.
This project provides reusable extensions, models, and high-performance helper types used by Roslyn-based projects such as Phymnary.SugarPot.AspNetCore.Api.Roslyn and Phymnary.SugarPot.DependencyInjection.Roslyn.
Features
- Symbol and attribute inspection helpers
- Incremental provider utilities (including grouping helpers)
- Shared source diagnostic model and reporting extensions
- Type hierarchy modeling for generated partial type output
- Performance-oriented helper types:
ImmutableArrayBuilder<T>EquatableArray<T>- pooled/object-pool and hash helpers
Core namespaces
Phymnary.SugarPot.RoslynComponents.ExtensionsPhymnary.SugarPot.RoslynComponents.ModelsPhymnary.SugarPot.RoslynComponents.Helpers
Notable APIs
Symbol extensions
SymbolExtensions includes helpers such as:
GetFullyQualifiedName(...)GetFullyQualifiedMetadataName(...)HasAttributeWithFullyQualifiedMetadataName(...)ImplementsFromFullyQualifiedMetadataName(...)InheritsFromFullyQualifiedMetadataName(...)
These are useful for robust semantic checks in analyzers/generators.
Attribute helpers
AttributeDataExtensions.GetNamedArgument(...) simplifies extraction of named attribute arguments.
Incremental provider helpers
ProviderExtensions.GroupBy(...) helps shape incremental pipelines by grouping paired inputs into equatable arrays.
Hierarchy model and syntax generation
HierarchyInfo captures type metadata (name, namespace, nesting) and can emit a generated CompilationUnitSyntax with proper partial nesting and generated-file trivia.
Diagnostics model
SourceDiagnosticInfo wraps descriptor + location + args and provides ToDiagnostic() to report diagnostics consistently.
Performance helpers
ImmutableArrayBuilder<T> and EquatableArray<T> are designed to reduce allocations and improve equality behavior in incremental pipelines.
Example usage
using Microsoft.CodeAnalysis;
using Phymnary.SugarPot.RoslynComponents.Extensions;
static bool IsEndpoint(INamedTypeSymbol symbol)
{
return symbol.HasAttributeWithFullyQualifiedMetadataName(
"Phymnary.SugarPot.AspNetCore.Api.EndpointAttribute");
}
using Phymnary.SugarPot.RoslynComponents.Models;
var diagnostic = SourceDiagnosticInfo.Create(descriptor, symbol, symbol.Name).ToDiagnostic();
context.ReportDiagnostic(diagnostic);
Dependencies
Microsoft.CodeAnalysis.AnalyzersMicrosoft.CodeAnalysis.CSharp
Target framework
- .NET Standard 2.0
Notes
- This is an internal shared library for Roslyn tooling projects.
- Keep abstractions generic and dependency-light so they can be reused across analyzers/generators.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CodeAnalysis.Analyzers (>= 3.3.4)
- Microsoft.CodeAnalysis.CSharp (>= 4.3.0)
- PolySharp (>= 1.15.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 117 | 6/5/2026 |