Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New cursor-based implementation of grapheme clusters #23

Merged
merged 7 commits into from
Mar 16, 2017

Commits on Mar 4, 2017

  1. Starting to implement rope-capable API

    Very much work in progress.
    
    See unicode-rs#21
    raphlinus committed Mar 4, 2017
    Configuration menu
    Copy the full SHA
    f0df6be View commit details
    Browse the repository at this point in the history
  2. Continuing new grapheme boundary logic

    Implemented next_boundary and prev_boundary functions in terms of
    is_boundary (plus fixups to the internal state when moving the
    cursor). Fixed various problems in previous commit.
    
    Still work in progress, not tested yet.
    raphlinus committed Mar 4, 2017
    Configuration menu
    Copy the full SHA
    aaf9da4 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2017

  1. Switch existing iterators to cursor implementation

    Also, additional state machine work, mostly resume logic in next and
    prev grapheme cluster boundary methods.
    
    Includes some documentation, and also a bit of renaming from the
    earlier development drafts.
    raphlinus committed Mar 6, 2017
    Configuration menu
    Copy the full SHA
    ae18631 View commit details
    Browse the repository at this point in the history
  2. Additional test case

    This adds a test case for unicode-rs#19 (which was a mismatch between forward
    and reverse iterators in the original codebase).
    raphlinus committed Mar 6, 2017
    Configuration menu
    Copy the full SHA
    4a76978 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2017

  1. Add comments and doc tests

    Some of the doc tests also encouraged me to tweak the implementation.
    raphlinus committed Mar 15, 2017
    Configuration menu
    Copy the full SHA
    0083ef5 View commit details
    Browse the repository at this point in the history
  2. Get rid of special case for CRLF

    The existing code treated CR and LF as special cases of the Control
    grapheme category, for reasons that weren't very good. This patch gets
    rid of that and just handles GB3 in the pair lookup. That should
    improve performance in the rope case, as it will cut down on the
    amount of pre-context requested when a chunk begins with LF.
    raphlinus committed Mar 15, 2017
    Configuration menu
    Copy the full SHA
    92767fd View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2017

  1. Fix little typo

    raphlinus committed Mar 16, 2017
    Configuration menu
    Copy the full SHA
    deebd8a View commit details
    Browse the repository at this point in the history