add nullable context to attribute
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Speckle.ProxyGenerator.Extensions;
|
||||
using Speckle.ProxyGenerator.Models;
|
||||
|
||||
namespace Speckle.ProxyGenerator.FileGenerators;
|
||||
@@ -6,7 +7,7 @@ internal class ExtraFilesGenerator : IFileGenerator
|
||||
{
|
||||
private const string Name = "Speckle.ProxyGenerator.Extra.g.cs";
|
||||
|
||||
public FileData GenerateFile()
|
||||
public FileData GenerateFile(bool supportsNullable)
|
||||
{
|
||||
return new FileData(
|
||||
$"{Name}",
|
||||
@@ -19,6 +20,7 @@ internal class ExtraFilesGenerator : IFileGenerator
|
||||
// </auto-generated>
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
{supportsNullable.IIf("#nullable enable")}
|
||||
using System;
|
||||
|
||||
namespace Speckle.ProxyGenerator
|
||||
@@ -67,6 +69,7 @@ namespace Speckle.ProxyGenerator
|
||||
|
||||
Internal = 1
|
||||
}}
|
||||
{supportsNullable.IIf("#nullable restore")}
|
||||
}}"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,5 +4,5 @@ namespace Speckle.ProxyGenerator.FileGenerators;
|
||||
|
||||
internal interface IFileGenerator
|
||||
{
|
||||
FileData GenerateFile();
|
||||
FileData GenerateFile(bool supportsNullable);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class ProxyInterfaceCodeGenerator : ISourceGenerator
|
||||
// https://github.com/reactiveui/refit/blob/main/InterfaceStubGenerator.Core/InterfaceStubGenerator.cs
|
||||
var supportsNullable = csharpParseOptions.LanguageVersion >= LanguageVersion.CSharp8;
|
||||
|
||||
GenerateProxyAttribute(context, receiver);
|
||||
GenerateProxyAttribute(context, receiver, supportsNullable);
|
||||
GeneratePartialInterfaces(context, receiver, supportsNullable);
|
||||
GenerateProxyClasses(context, receiver, supportsNullable);
|
||||
}
|
||||
@@ -65,7 +65,11 @@ class ProxyInterfaceCodeGenerator : ISourceGenerator
|
||||
context.AddSource("Error.g", SourceText.From(message, Encoding.UTF8));
|
||||
}
|
||||
|
||||
private void GenerateProxyAttribute(GeneratorExecutionContext ctx, ProxySyntaxReceiver receiver)
|
||||
private void GenerateProxyAttribute(
|
||||
GeneratorExecutionContext ctx,
|
||||
ProxySyntaxReceiver receiver,
|
||||
bool supportsNullable
|
||||
)
|
||||
{
|
||||
var context = new Context
|
||||
{
|
||||
@@ -73,7 +77,7 @@ class ProxyInterfaceCodeGenerator : ISourceGenerator
|
||||
Candidates = receiver.CandidateInterfaces
|
||||
};
|
||||
|
||||
var attributeData = _proxyAttributeGenerator.GenerateFile();
|
||||
var attributeData = _proxyAttributeGenerator.GenerateFile(supportsNullable);
|
||||
context.GeneratorExecutionContext.AddSource(
|
||||
attributeData.FileName,
|
||||
SourceText.From(attributeData.Text, Encoding.UTF8)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<Version>0.1.1</Version>
|
||||
<Version>0.1.2</Version>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<LangVersion>Latest</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
Reference in New Issue
Block a user