using System.Collections.Generic; using System.Linq; using Avalonia.Generators.Common.Domain; using XamlX.TypeSystem; namespace Avalonia.Generators.NameGenerator; internal class OnlyPropertiesCodeGenerator : ICodeGenerator { public string GenerateCode(string className, string nameSpace, IXamlType xamlType, IEnumerable names) { var namedControls = names .Select(info => " " + $"{info.FieldModifier} {info.TypeName} {info.Name} => " + $"this.FindNameScope()?.Find<{info.TypeName}>(\"{info.Name}\");") .ToList(); var lines = string.Join("\n", namedControls); return $@"// using Avalonia.Controls; namespace {nameSpace} {{ partial class {className} {{ {lines} }} }} "; } }