public static CodeNodeBuilder AttributeMethodImpl(this CodeNodeBuilder builder, MethodImplOptions options) { var flags = Enum.GetValues(typeof(MethodImplOptions)).Cast <Enum>().Where(options.HasFlag); var fullFlagName = flags.Select(x => $"System.Runtime.CompilerServices.MethodImplOptions.{x}"); return(builder.Attribute($"[System.Runtime.CompilerServices.MethodImpl({string.Join(", ", fullFlagName)})]")); }
private protected void WriteContent(IndentedStringBuilder builder) { foreach (var layout in _layout) { if (layout is string str) { builder.AppendLine(str); } if (layout is NodeInfo nodeInfo) { var subnode = new CodeNodeBuilder(); nodeInfo.NodeAction(subnode); builder.AppendLine(nodeInfo.Name); builder.AppendLine("{"); subnode.WriteContent(builder.NextIndentation()); builder.AppendLine("}"); } } }
private static void AddPartialClassNode(this CodeNodeBuilder node, INamedTypeSymbol symbol, Action <CodeNodeBuilder> nodeAction) { node.AddNode(symbol.DeclaredAccessibility, $"{(symbol.IsStatic ? "static" : null)} partial {symbol.TypeKind.ToString().ToLower()} {symbol.ToDisplayString(NullableFlowState.None, SymbolDisplayFormat.MinimallyQualifiedFormat)}", nodeAction); }
public static CodeNodeBuilder AttributeGenerated(this CodeNodeBuilder builder, Assembly assebmly) => builder.Attribute($"[System.CodeDom.Compiler.GeneratedCode({assebmly.GetName().Name}, {assebmly.GetName().Version})]");
public static CodeNodeBuilder AttributeHideEditor(this CodeNodeBuilder builder) => builder.Attribute("[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]");