From 3e86764748899ba44093b616857f1f2b7e0ef43d Mon Sep 17 00:00:00 2001 From: srkizer Date: Mon, 29 Jul 2024 00:29:25 +0900 Subject: [PATCH] Add xmldoc for TextProcessing (#1980) --- .../Internal/ImGuiSeStringRenderer/GfdFile.cs | 2 +- .../TextProcessing/UnicodeData.cs | 6 +- .../UnicodeEastAsianWidthClass.cs | 32 +++-- .../TextProcessing/UnicodeEmojiProperty.cs | 25 ++-- .../TextProcessing/UnicodeGeneralCategory.cs | 129 ++++++++++++------ .../TextProcessing/UnicodeLineBreakClass.cs | 9 +- 6 files changed, 129 insertions(+), 74 deletions(-) diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/GfdFile.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/GfdFile.cs index 2083d9cd9..48f9ad3a9 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/GfdFile.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/GfdFile.cs @@ -6,7 +6,7 @@ using Lumina.Data; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer; -/// Reference member view of a .gfd file data. +/// Game font data file. internal sealed unsafe class GfdFile : FileResource { /// Gets or sets the file header. diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeData.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeData.cs index a97fb95a4..ffbd92cc5 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeData.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeData.cs @@ -44,7 +44,7 @@ internal static class UnicodeData EmojiProperty = Parse( typeof(UnicodeData).Assembly.GetManifestResourceStream("emoji-data.txt")!, - UnicodeEmojiProperty.Emoji); + default(UnicodeEmojiProperty)); } private static T[] Parse(Stream stream, T defaultValue) @@ -94,8 +94,8 @@ internal static class UnicodeData if (from > char.MaxValue) continue; - from = Math.Min(from, char.MaxValue); - to = Math.Min(to, char.MaxValue); + from = Math.Min(from, res.Length); + to = Math.Min(to, res.Length); if (isFlag) { foreach (ref var v in res.AsSpan()[from..to]) diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEastAsianWidthClass.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEastAsianWidthClass.cs index e6d1cbd5f..0335b29a0 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEastAsianWidthClass.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEastAsianWidthClass.cs @@ -2,21 +2,25 @@ using System.Diagnostics.CodeAnalysis; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; +/// Unicode east asian width. [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 { - A = 0, - F = 1, - H = 2, - N = 3, - Na = 4, - W = 5, + /// East Asian Ambiguous. + A, + + /// East Asian Fullwidth. + F, + + /// East Asian Halfwidth. + H, + + /// Neutral. + N, + + /// East Asian Narrow. + Na, + + /// East Asian Wide. + W, } diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEmojiProperty.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEmojiProperty.cs index 8847e08fe..3788d9d99 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEmojiProperty.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeEmojiProperty.cs @@ -2,22 +2,27 @@ using System.Diagnostics.CodeAnalysis; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; +/// Unicode emoji property. [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] internal enum UnicodeEmojiProperty : byte { + /// Characters that are emoji. Emoji = 1 << 0, + + /// Characters that have emoji presentation by default. Emoji_Presentation = 1 << 1, - Emoji_Modifier_Base = 1 << 2, - Emoji_Modifier = 1 << 3, + + /// Characters that are emoji modifiers. + Emoji_Modifier = 1 << 2, + + /// Characters that can serve as a base for emoji modifiers. + Emoji_Modifier_Base = 1 << 3, + + /// 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. Emoji_Component = 1 << 4, + + /// Characters that are used to future-proof segmentation. Extended_Pictographic = 1 << 5, } diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeGeneralCategory.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeGeneralCategory.cs index 0c0614a5f..007666031 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeGeneralCategory.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeGeneralCategory.cs @@ -2,45 +2,98 @@ using System.Diagnostics.CodeAnalysis; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; +/// Unicode general category.. +/// [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 { - Cn = 0, - Lu = 1, - Ll = 2, - Lt = 3, - Lm = 4, - Lo = 5, - Mn = 6, - Me = 7, - Mc = 8, - Nd = 9, - Nl = 10, - No = 11, - Zs = 12, - Zl = 13, - Zp = 14, - Cc = 15, - Cf = 16, - Co = 17, - Cs = 18, - Pd = 19, - Ps = 20, - Pe = 21, - Pc = 22, - Po = 23, - Sm = 24, - Sc = 25, - Sk = 26, - So = 27, - Pi = 28, - Pf = 29, + /// Uppercase_Letter; an uppercase letter. + Lu, + + /// Lowercase_Letter; a lowercase letter. + Ll, + + /// Titlecase_Letter; a digraph encoded as a single character, with first part uppercase. + Lt, + + /// Modifier_Letter; a modifier letter. + Lm, + + /// Other_Letter; other letters, including syllables and ideographs. + Lo, + + /// Nonspacing_Mark; a nonspacing combining mark (zero advance width). + Mn, + + /// Spacing_Mark; a spacing combining mark (positive advance width). + Mc, + + /// Enclosing_Mark; an enclosing combining mark. + Me, + + /// Decimal_Number; a decimal digit. + Nd, + + /// Letter_Number; a letterlike numeric character. + Nl, + + /// Other_Number; a numeric character of other type. + No, + + /// Connector_Punctuation; a connecting punctuation mark, like a tie. + Pc, + + /// Dash_Punctuation; a dash or hyphen punctuation mark. + Pd, + + /// Open_Punctuation; an opening punctuation mark (of a pair). + Ps, + + /// Close_Punctuation; a closing punctuation mark (of a pair). + Pe, + + /// Initial_Punctuation; an initial quotation mark. + Pi, + + /// Final_Punctuation; a final quotation mark. + Pf, + + /// Other_Punctuation; a punctuation mark of other type. + Po, + + /// Math_Symbol; a symbol of mathematical use. + Sm, + + /// Currency_Symbol; a currency sign. + Sc, + + /// Modifier_Symbol; a non-letterlike modifier symbol. + Sk, + + /// Other_Symbol; a symbol of other type. + So, + + /// Space_Separator; a space character (of various non-zero widths). + Zs, + + /// Line_Separator; U+2028 LINE SEPARATOR only. + Zl, + + /// Paragraph_Separator; U+2029 PARAGRAPH SEPARATOR only. + Zp, + + /// Control; a C0 or C1 control code. + Cc, + + /// Format; a format control character. + Cf, + + /// Surrogate; a surrogate code point. + Cs, + + /// Private_Use; a private-use character. + Co, + + /// Unassigned; a reserved unassigned code point or a noncharacter. + Cn, } diff --git a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeLineBreakClass.cs b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeLineBreakClass.cs index b33eb9dc7..0ee5a50a3 100644 --- a/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeLineBreakClass.cs +++ b/Dalamud/Interface/Internal/ImGuiSeStringRenderer/TextProcessing/UnicodeLineBreakClass.cs @@ -2,19 +2,12 @@ using System.Diagnostics.CodeAnalysis; namespace Dalamud.Interface.Internal.ImGuiSeStringRenderer.TextProcessing; +/// Unicode line break class. [SuppressMessage("ReSharper", "InconsistentNaming", Justification = "Unicode Data")] [SuppressMessage( "StyleCop.CSharp.DocumentationRules", "SA1300:Element should begin with an uppercase letter", 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 { /// Start of text.