/// <summary> /// Formats the specified display name. /// </summary> /// <param name="displayName">The display name to format.</param> /// <returns>The formatted display name.</returns> public string Format(string displayName) { var context = new FormatContext(displayName); while (context.HasMoreText) { rule.Evaluate(context, context.ReadNext()); } context.Flush(); return(context.FormattedDisplayName.ToString()); }
/// <summary> /// Formats the specified display name. /// </summary> /// <param name="displayName">The display name to format.</param> /// <returns>The formatted display name.</returns> public string Format(string displayName) { var context = new FormatContext(displayName); while (context.HasMoreText) { rule.Evaluate(context, context.ReadNext()); } context.Flush(); return context.FormattedDisplayName.ToString(); }
static void TryConsumeEscapeSequence(FormatContext context, char @char, int allowedLength) { var escapeSequence = new char[allowedLength]; var consumed = 0; while (consumed < allowedLength && context.HasMoreText) { var nextChar = context.ReadNext(); escapeSequence[consumed++] = nextChar; if (IsHex(nextChar)) { continue; } context.Buffer.Append(@char); context.Buffer.Append(escapeSequence, 0, consumed); return; } context.Buffer.Append(char.ConvertFromUtf32(HexToInt32(escapeSequence))); }
private static void TryConsumeEscapeSequence(FormatContext context, char @char, int allowedLength) { var escapeSequence = new char[allowedLength]; var consumed = 0; while (consumed < allowedLength && context.HasMoreText) { var nextChar = context.ReadNext(); escapeSequence[consumed++] = nextChar; if (IsHex(nextChar)) { continue; } context.Buffer.Append(@char); context.Buffer.Append(escapeSequence, 0, consumed); return; } context.Buffer.Append(char.ConvertFromUtf32(HexToInt32(escapeSequence))); }