API reference / Common / Engine types / TextComplexFieldStart
Interface: TextComplexFieldStart
A complex field's opening mark — one unit, carrying the definition.
The w:fldChar begin token, as a span. Everything between it and its [TextComplexFieldEnd] is the field's result: ordinary content, in the paragraph's own offset space, wherever the file put it. Which is what lets one shape hold every case — a single-paragraph field, a multi-paragraph TOC, a result-less { XE } whose marks are adjacent, and a nested field whose marks sit inside another's range.
Marks rather than a richtext span over the result is load-bearing for co-editing: a mark span can be split or gapped by concurrent edits at its edges, leaving a field half-marked or two disjoint spans claiming one id, with no invariant the CRDT can enforce. Sentinels are real units that merge like characters, so a field's identity cannot be torn.
Properties
| Property | Description |
|---|---|
fieldTextComplexField | What the field is — carried by the opening mark alone, the closing one holding nothing of it. |
propertiesTextCharacterProperties | The mark span's character properties — what the field element itself carries, distinct from the result's own, which paint the result the reader sees, and from the instruction's, which paint a value the field evaluates to. Empty for a w:fldSimple, which has no rPr. Where a result-less field has to paint (FORMCHECKBOX draws a checkbox from its form), this is what it paints with: there is no result span to carry properties instead. |