/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendTypeOfNameToCore(StringBuilder typeName, IFormatterContext context) { var offset = typeName.Length; Parent.AppendTypeOfNameTo(typeName, context); if (offset < typeName.Length) { typeName.Append('.'); } typeName.Append(CoreName); if (IsConstructed) { typeName.Append('<'); var args = GenericTypeArgumentNames; args[0].AppendTypeOfNameTo(typeName, context); for (int i = 1; i < args.Length; i++) { typeName.Append(", "); args[i].AppendTypeOfNameTo(typeName, context); } typeName.Append('>'); } else { typeName.Append(GetTypeOfNameTypeArgumentsNames(GenericTypeArgumentNames.Length)); } }
/// <summary> /// Append the name for cref attribute in document comment. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendCRefNameToCore(StringBuilder typeName, IFormatterContext context) { if (!_System.IsImported && !_System.IsDeclared) { typeName.Append("System."); } typeName.Append("Nullable{"); UnderlyingTypeName.AppendCRefNameTo(typeName, context); typeName.Append('}'); }
/// <summary> /// Gets the name for type of operator. /// </summary> /// <param name="context"></param> /// <returns></returns> public sealed override string GetTypeOfName(IFormatterContext context) { if (_TypeOfNameContext != context) { var typeName = new StringBuilder(); AppendTypeOfNameToCore(typeName, context); _TypeOfName = typeName.ToString(); _TypeOfNameContext = context; } return(_TypeOfName); }
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendTypeOfNameToCore(StringBuilder typeName, IFormatterContext context) { var offset = typeName.Length; Parent.AppendTypeOfNameTo(typeName, context); if (offset < typeName.Length) { typeName.Append('.'); } typeName.Append(Name); }
/// <summary> /// Gets the name for type alias declaration. /// </summary> /// <param name="context"></param> /// <returns></returns> public sealed override string GetAliasName(IFormatterContext context) { if (_AliasName == null) { var typeName = new StringBuilder(); AppendAliasNameToCore(typeName, context); _AliasName = typeName.ToString(); _AliasNameContext = context; } return(_AliasName); }
/// <summary> /// Append the name of this object. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public sealed override void AppendNameTo(StringBuilder typeName, IFormatterContext context) { if (_NameContext != context) { var offset = typeName.Length; AppendNameToCore(typeName, context); _Name = typeName.ToString(offset, typeName.Length - offset); _NameContext = context; } else { typeName.Append(_Name); } }
/// <summary> /// Begin namespace declaration with specified name. /// </summary> /// <param name="name"></param> /// <returns></returns> public IDisposable BeginNamespaceDeclaration(string name) { var namespaceName = Factory.GetNamespaceName( Context.NamespaceName.IsGlobal ? name : (new StringBuilder(Context.NamespaceName.FullName.Length + 1 + name.Length).Append(Context.NamespaceName.FullName).Append('.').Append(name).ToString())); var context = new NamespaceDeclarationFormatterContext(Context, namespaceName); var declared = context.NamespaceName; do { declared.IsDeclared = true; } while ((declared = declared.Parent) != Context.NamespaceName); Context = context; return(new NamespaceDeclaration(this)); }
/// <summary></summary> internal void EndNamespace() { foreach (var imported in Context.ImportedNamespaceNames) { imported.EndImport(); } var context = Context; Context = context.Parent; var declared = context.NamespaceName; do { declared.IsDeclared = false; } while ((declared = declared.Parent) != Context.NamespaceName); }
/// <summary> /// Append the name of this object. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public void AppendNameTo(StringBuilder typeName, IFormatterContext context) { if (IsImported) { return; } if (CachedContext != context) { if (context.NamespaceName.IsGlobal || Root != context.NamespaceName.Root) { CachedName = FullName; } else if (IsDeclared) { CachedName = string.Empty; } else { var anscestor = Parent; for (; ; anscestor = anscestor.Parent) { if (anscestor.IsDeclared) { CachedName = FullName.Substring(anscestor.FullName.Length + 1); break; } else if (anscestor.IsGlobal) { CachedName = FullName; break; } } } CachedContext = context; typeName.Append(CachedName); } else { typeName.Append(CachedName); } }
/// <summary> /// Append the name for cref attribute in document comment. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendCRefNameToCore(StringBuilder typeName, IFormatterContext context) { var offset = typeName.Length; Parent.AppendCRefNameTo(typeName, context); if (offset < typeName.Length) { typeName.Append('.'); } typeName.Append(CoreName); typeName.Append('{'); var args = GenericTypeArgumentNames; args[0].AppendCRefNameTo(typeName, context); for (int i = 1; i < args.Length; i++) { typeName.Append(", "); args[i].AppendCRefNameTo(typeName, context); } typeName.Append('}'); }
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public override void AppendTypeOfNameTo(StringBuilder typeName, IFormatterContext context) { }
/// <summary> /// Append the name of this object. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public override void AppendNameTo(StringBuilder builder, IFormatterContext context) { builder.Append(Name); }
/// <summary> /// Append the name for cref attribute in document comment. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public override void AppendCRefNameTo(StringBuilder typeName, IFormatterContext context) { typeName.Append(Name); }
/// <summary> /// Gets the name for type of operator. /// </summary> /// <param name="context"></param> /// <returns></returns> public override string GetTypeOfName(IFormatterContext context) => string.Empty;
/// <summary> /// Gets the name for cref attribute in document comment. /// </summary> /// <param name="context"></param> /// <returns></returns> public abstract string GetCRefName(IFormatterContext context);
/// <summary> /// Append the name for cref attribute in document comment. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public void AppendCRefNameTo(StringBuilder typeName, IFormatterContext context) { AppendNameTo(typeName, context); }
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendTypeOfNameToCore(StringBuilder typeName, IFormatterContext context) { ElementTypeName.AppendTypeOfNameTo(typeName, context); typeName.Append('*'); }
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendTypeOfNameToCore(StringBuilder typeName, IFormatterContext context) { UnderlyingTypeName.AppendTypeOfNameTo(typeName, context); typeName.Append('?'); }
public override string GetAliasName(IFormatterContext context) => Type.FullName;
/// <summary> /// Append the name for the type alias declaration. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendAliasNameToCore(StringBuilder typeName, IFormatterContext context) { typeName.Append("System.Nullable<"); UnderlyingTypeName.AppendAliasNameTo(typeName, context); typeName.Append('>'); }
public NamespaceDeclarationFormatterContext(IFormatterContext parent, INamespaceName namespaceName) { Parent = parent; NamespaceName = namespaceName; }
/// <summary> /// Gets the name for type alias declaration. /// </summary> /// <param name="context"></param> /// <returns></returns> public abstract string GetAliasName(IFormatterContext context);
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected abstract void AppendTypeOfNameToCore(StringBuilder typeName, IFormatterContext context);
/// <summary> /// Gets the name of this object. /// </summary> /// <param name="context"></param> /// <returns></returns> public override string GetName(IFormatterContext context) => Name;
public override string GetTypeOfName(IFormatterContext context) => PrimitiveName;
/// <summary> /// Append the name for the type alias declaration. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> protected override void AppendAliasNameToCore(StringBuilder typeName, IFormatterContext context) { ElementTypeName.AppendAliasNameTo(typeName, context); typeName.Append(Ranks); }
/// <summary> /// Append the name for the type alias declaration. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public void AppendAliasNameTo(StringBuilder typeName, IFormatterContext context) { typeName.Append(FullName); }
/// <summary> /// Append the name for typeof operator. /// </summary> /// <param name="typeName">A <see cref="StringBuilder"/> to append the name.</param> /// <param name="context"></param> public abstract void AppendTypeOfNameTo(StringBuilder typeName, IFormatterContext context);
public override void AppendTypeOfNameTo(StringBuilder typeName, IFormatterContext context) { typeName.Append(PrimitiveName); }
/// <summary> /// Gets the name for type of operator. /// </summary> /// <param name="context"></param> /// <returns></returns> public abstract string GetTypeOfName(IFormatterContext context);