Add XML documentation for Android.Icu.Text - #652
Conversation
Imports 765 exact documentation matches from official Android and Java references for #117. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f014d878-351d-4590-8214-17d69ece6f1a
There was a problem hiding this comment.
Pull request overview
This pull request updates the docs/xml/Android.Icu.Text API documentation set by importing official Android/Java reference text to replace To be added placeholders across the Android.Icu.Text namespace, improving generated docs for consumers of the Mono.Android bindings.
Changes:
- Replaces many
To be addedplaceholders with imported<summary>,<param>,<returns>, and<remarks>content. - Adds reference links back to the Android documentation pages in numerous members.
- Improves documentation completeness/quality for a broad set of ICU-related types (formatting, transliteration, pluralization, normalization, collation, etc.).
Reviewed changes
Copilot reviewed 74 out of 74 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/xml/Android.Icu.Text/UnicodeSetSpanner.xml | Fills in method/member docs for UnicodeSetSpanner operations (count/replace/delete/trim) with reference links. |
| docs/xml/Android.Icu.Text/UnicodeSetOptions.xml | Documents UnicodeSet option constants with detailed summaries and Android reference links. |
| docs/xml/Android.Icu.Text/UnicodeSet.xml | Improves member docs for UnicodeSet (clone/iterators/span APIs) and adds reference links. |
| docs/xml/Android.Icu.Text/UnicodeMatchResult.xml | Documents match result constants (U_MATCH, etc.) with reference links. |
| docs/xml/Android.Icu.Text/UnicodeFilter.xml | Replaces placeholder docs in matcher/filter APIs with detailed parameter/return semantics. |
| docs/xml/Android.Icu.Text/UCharacterIterator.xml | Documents constants/properties (e.g., DONE, index/length) with reference links. |
| docs/xml/Android.Icu.Text/Transliterator+Position.xml | Replaces placeholder constructor/method docs for Transliterator.Position and adds reference links. |
| docs/xml/Android.Icu.Text/Transliterator.xml | Documents transliteration APIs (filtered transliteration, finish, incremental variants) with reference links. |
| docs/xml/Android.Icu.Text/TimeZoneNames.xml | Documents display-name/meta-zone APIs and adds reference links. |
| docs/xml/Android.Icu.Text/StringSearch.xml | Documents abstract search hooks and index accessors with reference links. |
| docs/xml/Android.Icu.Text/SimpleDateFormat.xml | Replaces placeholder parameter/return docs for parsing and pattern-field mapping with reference links. |
| docs/xml/Android.Icu.Text/SearchIterator.xml | Documents element comparison and index APIs with reference links. |
| docs/xml/Android.Icu.Text/RelativeDateTimeFormatter+FormattedRelativeDateTime.xml | Documents FormattedRelativeDateTime CharSequence/field-iteration APIs. |
| docs/xml/Android.Icu.Text/PluralRules.xml | Documents PluralRules.forLocale(...) overloads with reference links and CLDR context. |
| docs/xml/Android.Icu.Text/PluralFormat.xml | Documents constructors for plural formatting with reference links. |
| docs/xml/Android.Icu.Text/PadPosition.xml | Documents pad-position constants (DecimalFormat) with reference links. |
| docs/xml/Android.Icu.Text/NumberFormatField.xml | Documents number-format field constants with reference links. |
| docs/xml/Android.Icu.Text/NumberFormat.xml | Documents formatting/context APIs with reference links. |
| docs/xml/Android.Icu.Text/NormalizerCompareOptions.xml | Documents normalizer compare/folding option constants with reference links. |
| docs/xml/Android.Icu.Text/Normalizer2.xml | Documents Normalizer2 factory/quick-check APIs with reference links and deprecation note. |
| docs/xml/Android.Icu.Text/Normalizer.xml | Improves clone return docs. |
| docs/xml/Android.Icu.Text/MessagePattern+Part+Type.xml | Documents MessagePattern.Part.Type and hasNumericValue with reference links. |
| docs/xml/Android.Icu.Text/MessagePattern+Part.xml | Documents MessagePattern.Part accessors with reference links. |
| docs/xml/Android.Icu.Text/MessagePattern.xml | Documents constructors and helper APIs (parts/numeric/substrings) with reference links. |
| docs/xml/Android.Icu.Text/MessageFormat.xml | Documents apostrophe-mode accessors/pattern application/format helpers with reference links. |
| docs/xml/Android.Icu.Text/LocaleDisplayNames.xml | Documents context/dialect/instance factory APIs with reference links. |
| docs/xml/Android.Icu.Text/ListFormatter+FormattedList.xml | Documents FormattedList CharSequence/field-iteration APIs. |
| docs/xml/Android.Icu.Text/ListFormatter.xml | Documents list formatting APIs (string + formatted value) and instance factories with reference links. |
| docs/xml/Android.Icu.Text/IReplaceable.xml | Documents Replaceable metadata flag (hasMetaData) with reference link. |
| docs/xml/Android.Icu.Text/IDNAOptions.xml | Documents IDNA option constants with reference links. |
| docs/xml/Android.Icu.Text/IDNA.xml | Documents label/name conversion APIs with reference links. |
| docs/xml/Android.Icu.Text/Edits.xml | Documents iterator getters for edit sequences with reference links. |
| docs/xml/Android.Icu.Text/DisplayOptions+Builder.xml | Documents builder setters for display options with reference links. |
| docs/xml/Android.Icu.Text/DisplayOptions.xml | Documents getters/builder helpers for display options with reference links. |
| docs/xml/Android.Icu.Text/DisplayContext.xml | Documents DisplayContext.type() with reference link. |
| docs/xml/Android.Icu.Text/DirectionOptions.xml | Documents transliteration direction constants with reference links. |
| docs/xml/Android.Icu.Text/DecimalFormatSymbols.xml | Improves clone docs and return text. |
| docs/xml/Android.Icu.Text/DecimalFormat.xml | Documents currency usage getter and various format/parse APIs. |
| docs/xml/Android.Icu.Text/DateTimePatternMatchOptions.xml | Documents DateTimePatternGenerator match-option constants with reference links. |
| docs/xml/Android.Icu.Text/DateTimePatternGenerator.xml | Documents pattern generator APIs (addPattern, freeze, display names, etc.) with reference links. |
| docs/xml/Android.Icu.Text/DateIntervalInfo.xml | Documents freeze/clone and interval-pattern retrieval with reference links. |
| docs/xml/Android.Icu.Text/DateIntervalFormat+FormattedDateInterval.xml | Documents FormattedDateInterval CharSequence/field-iteration APIs. |
| docs/xml/Android.Icu.Text/DateIntervalFormat.xml | Documents formatted interval output APIs and context access with reference links. |
| docs/xml/Android.Icu.Text/DateFormatSymbolWidth.xml | Documents DateFormatSymbols width constants with reference links. |
| docs/xml/Android.Icu.Text/DateFormatSymbols.xml | Improves clone return docs. |
| docs/xml/Android.Icu.Text/DateFormatSymbolContext.xml | Documents DateFormatSymbols context constants with reference links. |
| docs/xml/Android.Icu.Text/DateFormat+Field.xml | Documents calendar-field mapping helper with reference link. |
| docs/xml/Android.Icu.Text/DateFormat.xml | Documents context/boolean attribute/get/parse/set behaviors with reference links. |
| docs/xml/Android.Icu.Text/CurrencySpacing.xml | Documents currency spacing constants with reference links. |
| docs/xml/Android.Icu.Text/CurrencyPluralInfo.xml | Improves clone return docs. |
| docs/xml/Android.Icu.Text/ConstrainedFieldPosition.xml | Documents constraint/state APIs with reference links. |
| docs/xml/Android.Icu.Text/CompactDecimalFormat.xml | Documents factory APIs with reference links and usage note. |
| docs/xml/Android.Icu.Text/CollatorDecompositionMode.xml | Documents decomposition mode constants with reference links. |
| docs/xml/Android.Icu.Text/Collator.xml | Documents version/variable-top accessors with reference links. |
| docs/xml/Android.Icu.Text/CollationStrength.xml | Documents collation strength constants with reference links. |
| docs/xml/Android.Icu.Text/CollationKeyBoundMode.xml | Documents bound mode constants with reference links. |
| docs/xml/Android.Icu.Text/CaseMap+Upper.xml | Documents case-map options API with reference link. |
| docs/xml/Android.Icu.Text/CaseMap+Title.xml | Documents titlecase option APIs with reference links. |
| docs/xml/Android.Icu.Text/CaseMap+Lower.xml | Documents case-map options API with reference link. |
| docs/xml/Android.Icu.Text/CaseMap+Fold.xml | Documents foldcase options APIs with reference links. |
| docs/xml/Android.Icu.Text/BreakKind.xml | Documents BreakIterator kind constants with reference links. |
| docs/xml/Android.Icu.Text/BreakIterator.xml | Documents getText() with reference link. |
| docs/xml/Android.Icu.Text/BidiOptions.xml | Documents Bidi direction/options constants with reference links. |
| docs/xml/Android.Icu.Text/AlphabeticIndex+ImmutableIndex.xml | Documents bucket access/iteration APIs with reference links. |
| docs/xml/Android.Icu.Text/AlphabeticIndex+Bucket+LabelType.xml | Documents bucket label-type enum with reference link. |
| docs/xml/Android.Icu.Text/AlphabeticIndex+Bucket.xml | Documents bucket APIs and iterator return docs with reference links. |
| docs/xml/Android.Icu.Text/AlphabeticIndex.xml | Documents label addition/build-immutable APIs with reference links. |
Suppressed comments (7)
docs/xml/Android.Icu.Text/UnicodeSetSpanner.xml:1141
- The docs reference "CharSequence.subsequence()", but the Java CharSequence API method is named "subSequence" (capital S). Using the wrong casing makes the reference misleading.
docs/xml/Android.Icu.Text/LocaleDisplayNames.xml:368 - The parameter description has an unclosed parenthesis, which reads like a truncated sentence.
docs/xml/Android.Icu.Text/Transliterator.xml:1638 - "unambiguosly" is misspelled; should be "unambiguously" (appears in both the summary and remarks).
docs/xml/Android.Icu.Text/Transliterator.xml:1678 - "unambiguosly" is misspelled; should be "unambiguously". Also, this remarks block still contains the "To be added." placeholder even though reference/attribution paragraphs follow.
docs/xml/Android.Icu.Text/ListFormatter+FormattedList.xml:452 - The phrase "(in char s)" has an extra space; it should read "(in chars)".
docs/xml/Android.Icu.Text/RelativeDateTimeFormatter+FormattedRelativeDateTime.xml:466 - The phrase "(in char s)" has an extra space; it should read "(in chars)".
docs/xml/Android.Icu.Text/DateIntervalFormat+FormattedDateInterval.xml:452 - The phrase "(in char s)" has an extra space; it should read "(in chars)".
<para>Returns a CharSequence that is a subsequence of this sequence. The subsequence starts with the char value at the specified index and ends with the char value at index end - 1. The length (in char s) of the returned sequence is end - start, so if start == end then an empty sequence is returned.</para>
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
Two systemic ICU Text import defects remain:
- Sentence extraction truncates summaries at abbreviations such as
e.g.andvs.in DisplayContext, NumberFormat, and UnicodeSet.SpanCondition. - Newly populated remarks in at least seven files still begin with literal
To be added.text before source/attribution paragraphs.
Please fix abbreviation-aware summary splitting, clean every augmented placeholder, and add full-diff checks for both patterns.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
The exact-head importer self-test fails deterministically with SELF-TEST FAIL: augmented remarks placeholder is removed. Reverting only this PR's tools/importer.cs changes makes the suite pass, confirming the cleanup implementation or fixture is broken. Please fix RemoveAugmentedRemarksPlaceholder/AddSourceDocumentationIfSafe, make the new assertion pass, and gate CI on the self-test.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
MessageFormat.GetApostropheMode now publishes [icu] as both its summary and descriptive remarks (docs/xml/Android.Icu.Text/MessageFormat.xml), because IsMeaningfulChannel accepts this source annotation as documentation. Please reject standalone markers such as [icu] so placeholders are replaced only by meaningful API prose.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
Three importer blockers remain:
FirstSentence/IsAbbreviationintools/importer.csstill truncates parenthesized abbreviations such as(e.g. ...); the new test covers only a bare token, while the actualDisplayContext.type()source uses the parenthesized form.- Removing every
<pre>/<devsite-code>block drops examples but retains prose that introduces them, leaving eight changed remarks incomplete or nonsensical (for example,DecimalFormatSymbols.Clonesays “the expression ... will be true” with all three expressions missing). ReportMappingFailureomits the new repair-only summary/remarks candidates, so cache, parse, or registration failures can be silently skipped while a dry run still succeeds.
Please fix all three production paths and add end-to-end regression coverage.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
Four importer blockers remain:
FirstSentencestill treats the final period in...as a boundary; the realDisplayOptionssource truncates at its first ellipsis.- The repair detector handles only two literal example shapes, leaving six changed remarks without their official code blocks (
ConstrainedFieldPosition, threeFormatted*types, and twoUnicodeSetSpannermembers). - Code conversion collapses line breaks and inserts spaces between syntax-highlight spans; the retained
DateTimePatternGeneratorsample turns//into a comment over subsequent statements and corrupts*/into* /. - The existing-source-URL early return prevents prose insertion, leaving nine changed remarks with only link/attribution metadata despite available behavioral text.
Please fix these production paths, refresh every affected member, and add end-to-end fixtures for ellipses, all example shapes, multiline/token-sensitive code, and metadata-only remarks.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
Seven importer/output blockers remain:
- Nested source code blocks are consumed by the outer
<p>regex, leaving ten official examples absent and allowing repair to overwrite already-complete code. - Extracted code is emitted as ordinary
<para>, so ECMA2Yaml collapses multiline comments, statements, and indentation during publishing. - Ten changed metadata-only owners still omit available exact-source prose.
- Empty enum remarks are misclassified as metadata-only, producing 116 spurious/non-idempotent repairs and inaccurate reporting.
- Truncation repair misses 28 existing corrupted summaries and still over-merges sentence-ending abbreviations/closing delimiters.
- Inline phrasing/code tags still insert spaces between adjacent tokens, corrupting expressions such as
new MessageFormat(pattern).format(...). - The latest
UnicodeSetSpannerrefresh regressessubSequence()to nonexistentsubsequence()and retains literal{@code ...}wrappers.
Please fix these production paths, refresh every affected member, and add clean-head idempotence plus rendered-output coverage.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
dalexsoto
left a comment
There was a problem hiding this comment.
Seven importer/output blockers remain:
- Android
pre.api-signatureblocks are imported as summaries/remarks for otherwise empty or annotation-only members; clean-head runs propose 82 changes. - Nested text/code traversal moves trailing prose before its code block.
- Four official examples remain ordinary
<para>prose (and one Javadoc wrapper remains), so multiline code still collapses in publishing. - Single-line source blocks render as inline code instead of fenced blocks.
- Ten metadata-only changed owners still omit available exact-source prose.
- Twenty-eight source-linked summaries remain truncated, while sentence boundaries still mishandle terminal abbreviations and closing punctuation.
- Existing inline expressions retain inserted spaces that corrupt Java syntax.
Please exclude signature blocks, preserve ordered text/code nodes and block rendering, refresh all affected owners, and require zero unexplained clean-head would-applies plus rendered-output/idempotence coverage.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 090d0776-3020-428e-a4b0-e062232ad5ed
|
|
@dalexsoto review. |
Closes #117.
Imports 765 exact documentation matches from official Android and Java references across 74 Android.Icu.Text XML files.
The final scoped importer run found no further safe matches. It conservatively left 2,486 placeholders where registrations or exact mappings were absent, upstream prose/channels were unavailable, or source text was low-value.