From c8dfd98daf3b8560b3cf824e32777868e98a7808 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Sat, 11 Sep 2021 14:31:42 +1000 Subject: [PATCH] feature: Add the ability to get compilation out Add logo for RxMarbles --- .github/workflows/ci-build.yml | 1 + images/logo.png | Bin 0 -> 47204 bytes src/Directory.Build.props | 2 ++ .../Compilation/SourceGeneratorUtility.cs | 26 ++++++++++++++---- version.json | 2 +- 5 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 images/logo.png diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index e3beaf1..492fe8c 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -21,6 +21,7 @@ jobs: uses: actions/checkout@v2.3.4 with: fetch-depth: 0 + lfs: true - name: Install .NET Core uses: actions/setup-dotnet@v1.8.0 diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2fde10093535e86d5418cdfbdd27d484a44559f GIT binary patch literal 47204 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%0A`J^L&^`QZc3nPn+@}P2F6i& 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 HHsSvRmbRve literal 0 HcmV?d00001 diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 22da365..87da130 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -10,6 +10,7 @@ MIT https://github.com/reactivemarbles/SourceGenerator.TestNuGetHelper Helpers for dealing with NuGet packages. + logo.png glennawatson https://github.com/reactivemarbles/SourceGenerator.TestNuGetHelper/releases https://github.com/reactivemarbles/SourceGenerator.TestNuGetHelper @@ -32,6 +33,7 @@ + diff --git a/src/ReactiveMarbles.SourceGenerator.TestNuGetHelper/Compilation/SourceGeneratorUtility.cs b/src/ReactiveMarbles.SourceGenerator.TestNuGetHelper/Compilation/SourceGeneratorUtility.cs index 57340ae..dd46c35 100644 --- a/src/ReactiveMarbles.SourceGenerator.TestNuGetHelper/Compilation/SourceGeneratorUtility.cs +++ b/src/ReactiveMarbles.SourceGenerator.TestNuGetHelper/Compilation/SourceGeneratorUtility.cs @@ -7,6 +7,7 @@ using System.Collections.Immutable; using System.IO; using System.Linq; + using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -64,18 +65,33 @@ static SourceGeneratorUtility() /// The source code files. /// The source generator instance. public T RunGenerator(EventBuilderCompiler compiler, out ImmutableArray compilationDiagnostics, out ImmutableArray generatorDiagnostics, out GeneratorDriver generatorDriver, params string[] sources) + where T : ISourceGenerator, new() => RunGenerator(compiler, out compilationDiagnostics, out generatorDiagnostics, out generatorDriver, out _, out _, sources); + + /// + /// Runs the generator. + /// + /// The type of generator. + /// The compiler. + /// The diagnostics which are produced from the compiler. + /// The diagnostics which are produced from the generator. + /// Output value for the driver. + /// The compilation before the generator has run. + /// The compilation after the generator has run. + /// The source code files. + /// The source generator instance. + public T RunGenerator(EventBuilderCompiler compiler, out ImmutableArray compilationDiagnostics, out ImmutableArray generatorDiagnostics, out GeneratorDriver generatorDriver, out Microsoft.CodeAnalysis.Compilation beforeCompilation, out Microsoft.CodeAnalysis.Compilation afterGeneratorCompilation, params string[] sources) where T : ISourceGenerator, new() { - var compilation = CreateCompilation(compiler, sources); + beforeCompilation = CreateCompilation(compiler, sources); var generator = new T(); - var newCompilation = RunGenerators(compilation, out generatorDiagnostics, out generatorDriver, generator); + afterGeneratorCompilation = RunGenerators(beforeCompilation, out generatorDiagnostics, out generatorDriver, generator); - compilationDiagnostics = newCompilation.GetDiagnostics(); + compilationDiagnostics = afterGeneratorCompilation.GetDiagnostics(); - ShouldHaveNoCompilerDiagnosticsWarningOrAbove(_writeOutput, newCompilation, compilationDiagnostics); - ShouldHaveNoCompilerDiagnosticsWarningOrAbove(_writeOutput, compilation, generatorDiagnostics); + ShouldHaveNoCompilerDiagnosticsWarningOrAbove(_writeOutput, afterGeneratorCompilation, compilationDiagnostics); + ShouldHaveNoCompilerDiagnosticsWarningOrAbove(_writeOutput, beforeCompilation, generatorDiagnostics); return generator; } diff --git a/version.json b/version.json index ffd1721..c585f2b 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "version": "1.0", + "version": "1.1", "publicReleaseRefSpec": [ "^refs/heads/master$", "^refs/heads/main$"