Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use type FQN for familiar names in generator #144

Merged
merged 1 commit into from
Jan 19, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Use type FQN for familiar names in generator
  • Loading branch information
hadashiA committed Jan 19, 2024
commit bfd7b9215bc66f75d9fdfa776a9f9e61d7f81c15
28 changes: 14 additions & 14 deletions src/ZLogger.Generator/ZLoggerGenerator.Emitter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 55,7 @@ public void EmitStructState(LogMethodDeclaration method)
var parameterCount = methodParameters.Length;

var jsonParameters = methodParameters
.Select(x => $" static readonly JsonEncodedText _jsonParameter_{x.LinkedMessageSegment.NameParameter} = JsonEncodedText.Encode(\"{x.LinkedMessageSegment.GetPropertyName()}\");")
.Select(x => $" static readonly global::System.Text.Json.JsonEncodedText _jsonParameter_{x.LinkedMessageSegment.NameParameter} = global::System.Text.Json.JsonEncodedText.Encode(\"{x.LinkedMessageSegment.GetPropertyName()}\");")
.StringJoinNewLine();

var fieldParameters = methodParameters
Expand Down Expand Up @@ -129,7 129,7 @@ void EmitIZLoggerFormattableMethods(LogMethodDeclaration method)
var method = methodParameters.First(y => x == y.LinkedMessageSegment);
if (method.IsEnumerable() || x.FormatString == "json")
{
return $" CodeGeneratorUtil.AppendAsJson(ref stringWriter, {x.NameParameter});";
return $" global::ZLogger.Internal.CodeGeneratorUtil.AppendAsJson(ref stringWriter, {x.NameParameter});";
}
else
{
Expand All @@ -145,9 145,9 @@ void EmitIZLoggerFormattableMethods(LogMethodDeclaration method)
.StringJoinNewLine();

sb.AppendLine($$"""
public void ToString(IBufferWriter<byte> writer)
public void ToString(global::System.Buffers.IBufferWriter<byte> writer)
{
var stringWriter = new Utf8StringWriter<IBufferWriter<byte>>(literalLength: {{literalLength}}, formattedCount: {{formattedCount}}, bufferWriter: writer);
var stringWriter = new global::Utf8StringInterpolation.Utf8StringWriter<global::System.Buffers.IBufferWriter<byte>>(literalLength: {{literalLength}}, formattedCount: {{formattedCount}}, bufferWriter: writer);

{{appendValues}}

Expand All @@ -159,7 159,7 @@ public void ToString(IBufferWriter<byte> writer)

//void WriteJsonParameterKeyValues(Utf8JsonWriter writer, JsonSerializerOptions jsonSerializerOptions);
sb.AppendLine($$"""
public void WriteJsonParameterKeyValues(Utf8JsonWriter writer, JsonSerializerOptions jsonSerializerOptions, IKeyNameMutator? keyNameMutator = null)
public void WriteJsonParameterKeyValues(global::System.Text.Json.Utf8JsonWriter writer, global::System.Text.Json.JsonSerializerOptions jsonSerializerOptions, global::ZLogger.IKeyNameMutator? keyNameMutator = null)
{
{{ForEachLine(" ", methodParameters, x => x.ConvertJsonWriteMethod())}}
}
Expand All @@ -176,7 176,7 @@ public ReadOnlySpan<byte> GetParameterKey(int index)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return \"{x.LinkedMessageSegment.GetPropertyName()}\"u8;")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}

Expand All @@ -186,7 186,7 @@ public string GetParameterKeyAsString(int index)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return \"{x.LinkedMessageSegment.GetPropertyName()}\";")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}

Expand All @@ -196,7 196,7 @@ public object GetParameterValue(int index)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return this.{x.LinkedMessageSegment.NameParameter}!;")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}

Expand All @@ -206,7 206,7 @@ public T GetParameterValue<T>(int index)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return Unsafe.As<{x.Symbol.Type.ToFullyQualifiedFormatString()}, T>(ref Unsafe.AsRef(in this.{x.LinkedMessageSegment.NameParameter}));")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}

Expand All @@ -216,7 216,7 @@ public Type GetParameterType(int index)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return typeof({x.Symbol.Type.ToFullyQualifiedFormatString()});")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}

Expand All @@ -240,7 240,7 @@ void EmitKeyValuePairEnumerator(LogMethodDeclaration method)
{
{{ForEachLine(" ", methodParameters, (x, i) => $"case {i}: return new(\"{x.LinkedMessageSegment.GetPropertyName()}\", {x.LinkedMessageSegment.NameParameter});")}}
}
CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
global::ZLogger.Internal.CodeGeneratorUtil.ThrowArgumentOutOfRangeException();
return default!;
}
}
Expand Down Expand Up @@ -277,7 277,7 @@ void EmitLogBody(LogMethodDeclaration method)
var loggerName = method.MethodParameters.First(x => x.IsFirstLogger).Symbol.Name;

var logLevelParameter = method.MethodParameters.FirstOrDefault(x => x.IsFirstLogLevel);
var logLevel = (logLevelParameter != null) ? logLevelParameter.Symbol.Name : "LogLevel." method.Attribute.Level;
var logLevel = (logLevelParameter != null) ? logLevelParameter.Symbol.ToFullyQualifiedFormatString() : "global::Microsoft.Extensions.Logging.LogLevel." method.Attribute.Level;

var exceptionParameter = method.MethodParameters.FirstOrDefault(x => x.IsFirstException);
var exception = (exceptionParameter != null) ? exceptionParameter.Symbol.Name : "null";
Expand Down Expand Up @@ -404,7 404,7 @@ string ConvertJsonWriteMethodCore(ITypeSymbol type, bool emitDotValue)
default:
if (type.TypeKind == TypeKind.Enum)
{
return $"CodeGeneratorUtil.WriteJsonEnum(writer, _jsonParameter_{LinkedMessageSegment.NameParameter}, this.{LinkedMessageSegment.NameParameter}{emitDotValueString});";
return $"global::ZLogger.Internal.CodeGeneratorUtil.WriteJsonEnum(writer, _jsonParameter_{LinkedMessageSegment.NameParameter}, this.{LinkedMessageSegment.NameParameter}{emitDotValueString});";
}

var fullString = type.ToFullyQualifiedFormatString();
Expand All @@ -428,7 428,7 @@ string ConvertJsonWriteMethodCore(ITypeSymbol type, bool emitDotValue)
}

// final fallback, use Serialize
return $"writer.WritePropertyName(_jsonParameter_{LinkedMessageSegment.NameParameter}); JsonSerializer.Serialize(writer, this.{LinkedMessageSegment.NameParameter}{emitDotValueString});";
return $"writer.WritePropertyName(_jsonParameter_{LinkedMessageSegment.NameParameter}); global::System.Text.Json.JsonSerializer.Serialize(writer, this.{LinkedMessageSegment.NameParameter}{emitDotValueString});";
}
}
}
Loading