We simply move the cursor up or down by the number of whole lines that
fit on screen, allowing autoscroll to adjust the scroll position. This
causes there to be a margin under the location to which we move the
cursor, but I think it’s better to provide context and keep the
autoscroll experience consistent when using the keyboard.
Previously we were attempting the same computation twice, once
incorrectly when returning the scroll margins as integers and then doing
the same thing in terms of pixels. This just cleans up the original
calculation. It’s *slightly* different because it takes the floor to
continue returning integers, but the behavior is extremely close.
Now, during undo/redo overlapping selections will be temporarily
created as markers are created via snapshots. Old selections will
immediately be destroyed though, since undo/redo now completely
replace all historied markers w/ those in the snapshot, so there
is no need to merge selections.
Add tests to check if the get command properly merges the stored values
with the defined defaults in the schema.
Two cases:
- Obj has no property changes.
- Obj has one or more changes to a property.
Previously, our Error.convertStackTrace function was provided by coffeestack,
which only works for coffee-script. This adds a dependency on 'source-map-support',
which works for any source file with inline source maps.
This also refactors the code for registering our compilers (coffee-script,
typescript, and babel) so that caching logic is shared.
On recent versions of OS X Yosemite, there is a delay before we receive
the `mouseup` event when dragging selections with the trackpad. This
means that we’re frequently accidentally inserting text before the
selection process terminates, leading to unexpected selections after the
text insertion. This fixes that behavior and makes the behavior more
straightforward even in the case where the mouse button is remains held
down during text insertion.
By adding this extension to ViewRegistry::getView we're paving the way for
Etch-like view frameworks which promotes the usage of plain objects and
classes with an element property which is an instance of HTMLElement.