Add support for parameter attributes (#48)

* 1

* 2

* 3

* .

* x
This commit is contained in:
Stef Heyenrath
2022-12-17 11:28:16 +01:00
committed by GitHub
parent 02c0c7f4d2
commit a1a283c8bb
17 changed files with 136 additions and 65 deletions
@@ -1,5 +1,6 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using ProxyInterfaceSourceGenerator.Constants;
using ProxyInterfaceSourceGenerator.Enums;
namespace ProxyInterfaceSourceGenerator.Extensions;
@@ -8,6 +9,16 @@ internal static class ParameterSymbolExtensions
{
private const string ParameterValueNull = "null";
public static string GetAttributesPrefix(this IParameterSymbol ps)
{
var attributes = ps.GetAttributes()
.Where(a => !string.Equals(a.AttributeClass?.GetFullType(), InternalClassNames.NullableAttribute, StringComparison.OrdinalIgnoreCase))
.Select(a => $"[{a}]")
.ToArray();
return attributes.Any() ? $"{string.Join(" ", attributes)} " : string.Empty;
}
public static string GetRefPrefix(this IParameterSymbol ps)
{
return ps.RefKind switch