M Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs +1 -1
@@ 22,7 22,7 @@ public class PacketListIndexAttributeGenerator : IParameterGenerator
/// <summary>
/// Gets the full name of the packet index attribute.
/// </summary>
- public static string PacketListIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketListIndex";
+ public static string PacketListIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketListIndexAttribute";
/// <inheritdoc />
public bool ShouldHandle(ParameterInfo parameter)
M Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs +3 -3
@@ 33,7 33,7 @@ public class ConverterDeserializationGenerator
/// <param name="separator">The separator.</param>
public void SetAfterSeparatorOnce(char separator)
{
- _textWriter.WriteLine(@$"{_stringEnumeratorVariable}.SetAfterSeparatorOnce(""{separator}"");");
+ _textWriter.WriteLine(@$"{_stringEnumeratorVariable}.SetAfterSeparatorOnce('{separator}');");
}
/// <summary>
@@ 43,7 43,7 @@ public class ConverterDeserializationGenerator
/// <param name="maxTokens">The maximum number of tokens to read.</param>
public void PushLevel(char separator, uint? maxTokens = default)
{
- _textWriter.WriteLine(@$"{_stringEnumeratorVariable}.PushLevel(""{separator}"", {maxTokens?.ToString() ?? "null"});");
+ _textWriter.WriteLine(@$"{_stringEnumeratorVariable}.PushLevel('{separator}', {maxTokens?.ToString() ?? "null"});");
}
/// <summary>
@@ 61,7 61,7 @@ public class ConverterDeserializationGenerator
/// <param name="maxTokens">The maximum number of tokens to read.</param>
public void PrepareLevel(char separator, uint? maxTokens = default)
{
- _textWriter.WriteLine($@"{_stringEnumeratorVariable}.PrepareLevel(""{separator}"", {maxTokens?.ToString() ?? "null"});");
+ _textWriter.WriteLine($@"{_stringEnumeratorVariable}.PrepareLevel('{separator}', {maxTokens?.ToString() ?? "null"});");
}
/// <summary>
M Core/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs +4 -5
@@ 33,7 33,7 @@ public class ConverterSerializationGenerator
/// <param name="separator">The separator.</param>
public void SetAfterSeparatorOnce(char separator)
{
- _textWriter.WriteLine(@$"{_builderVariable}.SetAfterSeparatorOnce(""{separator}"");");
+ _textWriter.WriteLine(@$"{_builderVariable}.SetAfterSeparatorOnce('{separator}');");
}
/// <summary>
@@ 43,7 43,7 @@ public class ConverterSerializationGenerator
public void PushLevel(char separator)
{
_textWriter.WriteLine
- (@$"{_builderVariable}.PushLevel(""{separator}"");");
+ (@$"{_builderVariable}.PushLevel('{separator}');");
}
/// <summary>
@@ 58,11 58,10 @@ public class ConverterSerializationGenerator
/// Prepare the level to the string enumerator.
/// </summary>
/// <param name="separator">The separator.</param>
- /// <param name="maxTokens">The maximum number of tokens to read.</param>
- public void PrepareLevel(char separator, uint? maxTokens = default)
+ public void PrepareLevel(char separator)
{
_textWriter.WriteLine
- ($@"{_builderVariable}.PrepareLevel(""{separator}"", {maxTokens?.ToString() ?? "null"});");
+ ($@"{_builderVariable}.PrepareLevel('{separator}');");
}
/// <summary>
M Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs => Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs +1 -1
@@ 28,6 28,6 @@ public static class AttributeArgumentSyntaxExtensions
return null;
}
- return value;
+ return value.Value;
}
}=
\ No newline at end of file
M Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs => Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs +1 -1
@@ 24,6 24,6 @@ public static class AttributeListSyntaxExtensions
/// <returns>Whether the attribute is present.</returns>
public static bool ContainsAttribute(this AttributeListSyntax attributeList, SemanticModel semanticModel, string attributeFullName)
{
- return attributeList.Attributes.Any(x => Regex.IsMatch(attributeFullName, semanticModel.GetTypeInfo(x).Type?.ToString()!));
+ return attributeList.Attributes.Any(x => Regex.IsMatch(semanticModel.GetTypeInfo(x).Type?.ToString()!, attributeFullName));
}
}=
\ No newline at end of file
M Core/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs => Core/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs +10 -1
@@ 6,6 6,7 @@
using System.CodeDom.Compiler;
using System.Diagnostics;
+using System.Text.RegularExpressions;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
@@ 204,7 205,15 @@ public class SourceGenerator : ISourceGenerator
parameterInfo = null;
var attributes = parameter.AttributeLists
.Where(x => x.ContainsAttribute(semanticModel, Constants.PacketAttributesClassRegex))
- .SelectMany(x => x.Attributes)
+ .SelectMany
+ (
+ x
+ => x.Attributes.Where
+ (
+ y => Regex.IsMatch
+ (semanticModel.GetTypeInfo(y).Type?.ToString()!, Constants.PacketAttributesClassRegex)
+ )
+ )
.ToList();
if (attributes.Count == 0)