We previously implemented soft-wrap logic again just for this test.
Since the purpose of this test is just to make sure that mutation occurs
correctly, we now instead construct a fresh editor for comparison so
that changes to soft-wrap logic are reflected.
/cc @as-cii Took care of this, so you don’t need to worry about my
previous comment on your PR. Sorry for the noise.
Our new pattern for booleans is to have ::set and ::is, and that means
the property name needs to be in passive voice for ::is to make sense.
This is in preparation for adding a new change observation method.
* ::setSoftWrapped
* ::isSoftWrapped
* ::toggleSoftWrapped
This commit adds two important things:
1. An editor spec that randomly mutates a buffer and toggles soft wrap
on and off, then compares the screen lines to a simple reference
implementation to ensure everything stays in a correct state.
2. A new and radically simpler implementation of RowMap that eliminates
failures in the randomized test.