GraphemeView
Description
Provides a grapheme representational and bidirectional view over a unicode component where each element in the view is an extended grapheme cluster (which approximate human-readable characters).
A <Grapheme> is also the default representation of a <UnicodeString>. When APIs such as #at:, #size, #copyFrom:to: are used, its relative to graphemes.
#next/#previous - Answers a <Grapheme>.
#contents - Answers a <UnicodeString>
Instance State
lineDelimiter: <Object> grapheme or sequenceable collection of graphemes
Examples
| view |
view := GraphemeView on: 'abc' , String crlf.
self assert: [view next = $a asGrapheme].
self assert: [view next = $b asGrapheme].
self assert: [view next = $c asGrapheme].
self assert: [view next = Grapheme crlf].
self assert: [view atEnd].
self assert: [view contents = ('abc' , String crlf) asUnicodeString]
Class Methods
None
Instance Methods
lineDelimiter
  Answer the line delimiter of the receiver.
     If undefined, then a default set of Unicode line delimiters will be used.
     This is the set of graphemes defined in Grapheme>>isNewline

     Answers:
        <SequenceableCollection> of <Grapheme> or nil for default
lineDelimiter:
  Set the line delimiter of the receiver.
     Compat provided for String and Character.

     Notes:
        Any <Cr><Lf> will be replaced with Grapheme crlf since
        this is one grapheme in Unicode.

     Arguments:
        anObject - <Grapheme> grapheme delim
                          <UnicodeScalar> scalar delim
                          <UnicodeString> graphemes
                          <Array> of <implementors of #asGrapheme>
                          Compat: <String | Character>
     Answers:
        <UnicodeView> self
linesDo:
  Execute aBlock with each line in this string.
     The line delimiters used can be found in Grapheme>>isNewline.
     Line delimiters are not included in what is passed to @aBlock

     Arguments: 
        aBlock - <Block> 1-arg block with each line
nextLine
  Answer the elements between the current position and the next lineDelimiter.

     Answers:
        <UnicodeString>
supportsLineDelimiters
  Subclasses that support line delimiters should override
     and answer true.  This will allow for apis like nextLine

     Answers:
        <Boolean>
Last modified date: 04/20/2022