Add xmldoc for TextProcessing (#1980)

This commit is contained in:
srkizer 2024-07-29 00:29:25 +09:00 committed by GitHub
parent 844b04faad
commit 3e86764748
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 129 additions and 74 deletions

View file

@ -6,7 +6,7 @@ using Lumina.Data;
namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer;
/// <summary>Reference member view of a .gfd file data.</summary> /// <summary>Game font data file.</summary>
internal sealed unsafe class GfdFile : FileResource internal sealed unsafe class GfdFile : FileResource
{ {
/// <summary>Gets or sets the file header.</summary> /// <summary>Gets or sets the file header.</summary>

View file

@ -44,7 +44,7 @@ internal static class UnicodeData
EmojiProperty = EmojiProperty =
Parse( Parse(
typeof(UnicodeData).Assembly.GetManifestResourceStream("emoji-data.txt")!, typeof(UnicodeData).Assembly.GetManifestResourceStream("emoji-data.txt")!,
UnicodeEmojiProperty.Emoji); default(UnicodeEmojiProperty));
} }
private static T[] Parse<T>(Stream stream, T defaultValue) private static T[] Parse<T>(Stream stream, T defaultValue)
@ -94,8 +94,8 @@ internal static class UnicodeData
if (from > char.MaxValue) if (from > char.MaxValue)
continue; continue;
from = Math.Min(from, char.MaxValue); from = Math.Min(from, res.Length);
to = Math.Min(to, char.MaxValue); to = Math.Min(to, res.Length);
if (isFlag) if (isFlag)
{ {
foreach (ref var v in res.AsSpan()[from..to]) foreach (ref var v in res.AsSpan()[from..to])

View file

@ -2,21 +2,25 @@ using System.Diagnostics.CodeAnalysis;
namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing;
/// <summary><a href="https://www.unicode.org/reports/tr11/">Unicode east asian width</a>.</summary>
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")] [SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1600:Elements should be documented",
Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1602:Enumeration items should be documented",
Justification = "Unicode Data")]
internal enum UnicodeEastAsianWidthClass : byte internal enum UnicodeEastAsianWidthClass : byte
{ {
A = 0, /// <summary>East Asian Ambiguous.</summary>
F = 1, A,
H = 2,
N = 3, /// <summary>East Asian Fullwidth.</summary>
Na = 4, F,
W = 5,
/// <summary>East Asian Halfwidth.</summary>
H,
/// <summary>Neutral.</summary>
N,
/// <summary>East Asian Narrow.</summary>
Na,
/// <summary>East Asian Wide.</summary>
W,
} }

View file

@ -2,22 +2,27 @@ using System.Diagnostics.CodeAnalysis;
namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing;
/// <summary><a href="https://www.unicode.org/reports/tr51/#Emoji_Characters">Unicode emoji property</a>.</summary>
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")] [SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1600:Elements should be documented",
Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1602:Enumeration items should be documented",
Justification = "Unicode Data")]
[Flags] [Flags]
internal enum UnicodeEmojiProperty : byte internal enum UnicodeEmojiProperty : byte
{ {
/// <summary>Characters that are emoji.</summary>
Emoji = 1 << 0, Emoji = 1 << 0,
/// <summary>Characters that have emoji presentation by default.</summary>
Emoji_Presentation = 1 << 1, Emoji_Presentation = 1 << 1,
Emoji_Modifier_Base = 1 << 2,
Emoji_Modifier = 1 << 3, /// <summary>Characters that are emoji modifiers.</summary>
Emoji_Modifier = 1 << 2,
/// <summary>Characters that can serve as a base for emoji modifiers.</summary>
Emoji_Modifier_Base = 1 << 3,
/// <summary>Characters used in emoji sequences that normally do not appear on emoji keyboards as separate choices,
/// such as keycap base characters or Regional_Indicator characters.</summary>
Emoji_Component = 1 << 4, Emoji_Component = 1 << 4,
/// <summary>Characters that are used to future-proof segmentation.</summary>
Extended_Pictographic = 1 << 5, Extended_Pictographic = 1 << 5,
} }

View file

@ -2,45 +2,98 @@ using System.Diagnostics.CodeAnalysis;
namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing;
/// <summary><a href="https://www.unicode.org/reports/tr44/#General_Category_Values">Unicode general category.</a>.
/// </summary>
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")] [SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1600:Elements should be documented",
Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1602:Enumeration items should be documented",
Justification = "Unicode Data")]
internal enum UnicodeGeneralCategory : byte internal enum UnicodeGeneralCategory : byte
{ {
Cn = 0, /// <summary>Uppercase_Letter; an uppercase letter.</summary>
Lu = 1, Lu,
Ll = 2,
Lt = 3, /// <summary>Lowercase_Letter; a lowercase letter.</summary>
Lm = 4, Ll,
Lo = 5,
Mn = 6, /// <summary>Titlecase_Letter; a digraph encoded as a single character, with first part uppercase.</summary>
Me = 7, Lt,
Mc = 8,
Nd = 9, /// <summary>Modifier_Letter; a modifier letter.</summary>
Nl = 10, Lm,
No = 11,
Zs = 12, /// <summary>Other_Letter; other letters, including syllables and ideographs.</summary>
Zl = 13, Lo,
Zp = 14,
Cc = 15, /// <summary>Nonspacing_Mark; a nonspacing combining mark (zero advance width).</summary>
Cf = 16, Mn,
Co = 17,
Cs = 18, /// <summary>Spacing_Mark; a spacing combining mark (positive advance width).</summary>
Pd = 19, Mc,
Ps = 20,
Pe = 21, /// <summary>Enclosing_Mark; an enclosing combining mark.</summary>
Pc = 22, Me,
Po = 23,
Sm = 24, /// <summary>Decimal_Number; a decimal digit.</summary>
Sc = 25, Nd,
Sk = 26,
So = 27, /// <summary>Letter_Number; a letterlike numeric character.</summary>
Pi = 28, Nl,
Pf = 29,
/// <summary>Other_Number; a numeric character of other type.</summary>
No,
/// <summary>Connector_Punctuation; a connecting punctuation mark, like a tie.</summary>
Pc,
/// <summary>Dash_Punctuation; a dash or hyphen punctuation mark.</summary>
Pd,
/// <summary>Open_Punctuation; an opening punctuation mark (of a pair).</summary>
Ps,
/// <summary>Close_Punctuation; a closing punctuation mark (of a pair).</summary>
Pe,
/// <summary>Initial_Punctuation; an initial quotation mark.</summary>
Pi,
/// <summary>Final_Punctuation; a final quotation mark.</summary>
Pf,
/// <summary>Other_Punctuation; a punctuation mark of other type.</summary>
Po,
/// <summary>Math_Symbol; a symbol of mathematical use.</summary>
Sm,
/// <summary>Currency_Symbol; a currency sign.</summary>
Sc,
/// <summary>Modifier_Symbol; a non-letterlike modifier symbol.</summary>
Sk,
/// <summary>Other_Symbol; a symbol of other type.</summary>
So,
/// <summary>Space_Separator; a space character (of various non-zero widths).</summary>
Zs,
/// <summary>Line_Separator; U+2028 LINE SEPARATOR only.</summary>
Zl,
/// <summary>Paragraph_Separator; U+2029 PARAGRAPH SEPARATOR only.</summary>
Zp,
/// <summary>Control; a C0 or C1 control code.</summary>
Cc,
/// <summary>Format; a format control character.</summary>
Cf,
/// <summary>Surrogate; a surrogate code point.</summary>
Cs,
/// <summary>Private_Use; a private-use character.</summary>
Co,
/// <summary>Unassigned; a reserved unassigned code point or a noncharacter.</summary>
Cn,
} }

View file

@ -2,19 +2,12 @@ using System.Diagnostics.CodeAnalysis;
namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing;
/// <summary><a href="https://unicode.org/reports/tr14/#Table1">Unicode line break class</a>.</summary>
[SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")] [SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")]
[SuppressMessage( [SuppressMessage(
"StyleCop.CSharp.DocumentationRules", "StyleCop.CSharp.DocumentationRules",
"SA1300:Element should begin with an uppercase letter", "SA1300:Element should begin with an uppercase letter",
Justification = "Unicode Data")] Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1600:Elements should be documented",
Justification = "Unicode Data")]
[SuppressMessage(
"StyleCop.CSharp.DocumentationRules",
"SA1602:Enumeration items should be documented",
Justification = "Unicode Data")]
internal enum UnicodeLineBreakClass : byte internal enum UnicodeLineBreakClass : byte
{ {
/// <summary>Start of text.</summary> /// <summary>Start of text.</summary>