Add support for base (proxy) class (#29)

This commit is contained in:
Stef Heyenrath
2022-02-04 11:33:26 +01:00
committed by GitHub
parent 94d322cfb3
commit d7483d6b7e
38 changed files with 400 additions and 309 deletions
@@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using ProxyInterfaceSourceGenerator.Extensions;
using ProxyInterfaceSourceGenerator.Models;
namespace ProxyInterfaceSourceGenerator.SyntaxReceiver;
@@ -44,13 +45,13 @@ internal class ProxySyntaxReceiver : ISyntaxReceiver
var usings = new List<string>();
string ns = string.Empty;
if (SyntaxNodeUtils.TryGetParentSyntax(interfaceDeclarationSyntax, out NamespaceDeclarationSyntax? namespaceDeclarationSyntax))
if (interfaceDeclarationSyntax.TryGetParentSyntax(out NamespaceDeclarationSyntax? namespaceDeclarationSyntax))
{
ns = namespaceDeclarationSyntax.Name.ToString();
usings.Add(ns);
}
if (SyntaxNodeUtils.TryGetParentSyntax(interfaceDeclarationSyntax, out CompilationUnitSyntax? cc))
if (interfaceDeclarationSyntax.TryGetParentSyntax(out CompilationUnitSyntax? cc))
{
foreach (var @using in cc.Usings)
{
@@ -58,7 +59,9 @@ internal class ProxySyntaxReceiver : ISyntaxReceiver
}
}
string rawTypeName = ((TypeOfExpressionSyntax)argumentList.Arguments[0].Expression).Type.ToString();
var type = ((TypeOfExpressionSyntax)argumentList.Arguments[0].Expression).Type;
string rawTypeName = type.ToString();
bool proxyAllClasses;
try
{
@@ -73,6 +76,7 @@ internal class ProxySyntaxReceiver : ISyntaxReceiver
(
ns,
interfaceDeclarationSyntax.Identifier.ToString(),
$"{ns}.{interfaceDeclarationSyntax.Identifier}",
rawTypeName,
ConvertTypeName(rawTypeName),
usings,