private (bool IsGeneratedType, string TypeName) GetPropertyTypeName(ITypeSymbol propertyTypeSymbol) { if (GeneratedTypeFilter.IsGeneratableType(propertyTypeSymbol)) { return(true, NameBuilder.GetFullTypeName(propertyTypeSymbol)); } return(false, propertyTypeSymbol.ToDisplayString(GeneratedTypeFilter.SymbolFormat)); }
private void BuildNamespace(BuilderState state, Action <BuilderState>?addBody = null) { state.AppendLine($"#nullable enable"); state.AppendLine($"namespace {NameBuilder.GetNamespace(state.TypeInfo.TypeSymbol)}"); state.AppendLine("{"); addBody?.Invoke(state.IncrementIdentation()); state.AppendLine("}"); state.AppendLine($"#nullable disable"); }
public GeneratedWrapper BuildWrapperType(ITypeSymbol typeInfo, string sourceTypeName) { var name = NameBuilder.GetName(typeInfo); var state = InitializeState(typeInfo, name, sourceTypeName); BuildFile(state); return(new GeneratedWrapper() { FileName = $"LaDeakJsonMergePatch{NameBuilder.GetNamespaceExtension(typeInfo)}{name}", SourceCode = state.Builder.ToString(), SourceTypeFullName = sourceTypeName, TargetTypeFullName = NameBuilder.GetFullTypeName(typeInfo), ToProcessTypes = state.ToProcessTypeSymbols }); }