Esempio n. 1
0
 private (bool IsGeneratedType, string TypeName) GetPropertyTypeName(ITypeSymbol propertyTypeSymbol)
 {
     if (GeneratedTypeFilter.IsGeneratableType(propertyTypeSymbol))
     {
         return(true, NameBuilder.GetFullTypeName(propertyTypeSymbol));
     }
     return(false, propertyTypeSymbol.ToDisplayString(GeneratedTypeFilter.SymbolFormat));
 }
Esempio n. 2
0
 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");
 }
Esempio n. 3
0
        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
            });
        }