Nathan Sobo
5297e7ab1a
Add avoidOverflow: false option for overlays
2017-05-05 09:29:28 +02:00
Nathan Sobo
f2e2475c62
Use spies instead of monkey patching
2017-05-05 09:29:28 +02:00
Nathan Sobo
47761a455e
Support class property on overlay decorations
2017-05-05 09:29:28 +02:00
Nathan Sobo
b6f71bc648
Render overlay decorations
2017-05-05 09:29:28 +02:00
Nathan Sobo
5f2d4c801b
Handle mousedowns on dummy scrollbars that miss the actual scrollbars
...
Because the dummy scrollbar elements are potentially wider than the real
scrollbars rendered by the browser, we need to delegate some mousedown
events to the parent component.
2017-05-05 09:29:28 +02:00
Nathan Sobo
e6e5420f42
Correctly handle overflows caused by scrollbar for the opposite axis
2017-05-05 09:29:28 +02:00
Nathan Sobo
0999d0bf02
Handle scrolling of the dummy scrollbars directly
2017-05-05 09:29:28 +02:00
Nathan Sobo
8720dbc862
🎨
2017-05-05 09:29:28 +02:00
Nathan Sobo
5757d6de85
Group rendering tests
2017-05-05 09:29:28 +02:00
Nathan Sobo
2075f06404
WIP: Introduce dummy scrollbars
...
Still need tests on all of this
2017-05-05 09:29:28 +02:00
Nathan Sobo
5a47f179e3
Introduce synthetic scrolling
...
We previously thought scroll events had changed somehow to become
synchronous, but were wrong. This introduces synthetic scrolling where
we use GPU translation of the contents of the gutter and scroll
containers to simulate scrolling and explicitly capture mousewheel
events.
Still need to add dummy scrollbars and deal with their footprint in
clientHeight and clientWidth.
2017-05-05 09:29:28 +02:00
Nathan Sobo
0e747a400d
Pull from component's rendered lines in tests
2017-05-05 09:29:28 +02:00
Nathan Sobo
f58a249be1
Pull from compnoent's rendered screen lines in tests
2017-05-05 09:29:28 +02:00
Nathan Sobo
90c326b985
Fix clearing of marker-specific properties for layer decorations
2017-05-05 09:29:28 +02:00
Nathan Sobo
6023159819
Add highlight decoration flashing
2017-05-05 09:29:28 +02:00
Nathan Sobo
4e00139965
Support placeholderText parameter
2017-05-05 09:29:28 +02:00
Nathan Sobo
36f5262f40
Honor the isLineNumberGutterVisible option
2017-05-05 09:29:28 +02:00
Nathan Sobo
88b30bc4dc
Support autoHeight and autoWidth settings
2017-05-05 09:29:28 +02:00
Nathan Sobo
369818b475
Emit editor blur events as if no hidden input existed
2017-05-05 09:29:28 +02:00
Nathan Sobo
b152bfd9c6
Guard against unfocused window in beforeEach
2017-05-05 09:29:28 +02:00
Nathan Sobo
401434858b
Gracefully handle focus prior to detecting the editor has become visible
2017-05-05 09:29:28 +02:00
Nathan Sobo
82feef9f68
Don't render cursor line decorations in mini editors
2017-05-05 09:29:28 +02:00
Nathan Sobo
1427dbf540
Make lines extend across the entire width of the scroller
...
This ensures line decorations render properly, even when the content is
narrower than the editor.
2017-05-05 09:29:28 +02:00
Nathan Sobo
5c7208751f
Correctly autoscroll if a horizontal scrollbar appears in the same frame
2017-05-05 09:29:28 +02:00
Nathan Sobo
5d82dcf87a
Wait for content width to update before autoscrolling horizontally
2017-05-05 09:29:28 +02:00
Nathan Sobo
758466c9af
Make various tweaks to improve mini editors
...
Still a ways to go, but this is a start toward getting the mini-editors
to play nice with our existing styling.
2017-05-05 09:29:28 +02:00
Nathan Sobo
c2206b88da
Destroy folds on fold marker click
2017-05-05 09:29:27 +02:00
Nathan Sobo
68659d9698
When decorating a MarkerLayer, get its corresponding DisplayMarkerLayer
...
This fixes 'folded' line number decorations.
2017-05-05 09:29:27 +02:00
Nathan Sobo
a2f75c8337
Toggle folds when clicking the arrow icon in the line number gutter
2017-05-05 09:29:27 +02:00
Nathan Sobo
cf19d0efd5
Autoscroll vertically when click-dragging the line number gutter
2017-05-05 09:29:27 +02:00
Nathan Sobo
6e9a9ef43c
Add spec structure
2017-05-05 09:29:27 +02:00
Nathan Sobo
ffc2025df5
Handle clicking, shift-clicking, cmd-clicking and dragging in gutter
2017-05-05 09:29:27 +02:00
Nathan Sobo
17d579f949
Only handle the left mouse button (and middle on Linux)
2017-05-05 09:29:27 +02:00
Nathan Sobo
35ae3fb08f
Implement autoscroll when mouse is dragged on content
2017-05-05 09:29:27 +02:00
Nathan Sobo
5594c9d82f
Expand selections on mouse drag
2017-05-05 09:29:27 +02:00
Nathan Sobo
4ef9d385f3
Add tests for shift-clicking in wordwise and linewise mode
2017-05-05 09:29:27 +02:00
Nathan Sobo
e92cf0fe70
Fix event handler method name in specs
2017-05-05 09:29:27 +02:00
Nathan Sobo
c410309827
Expand selections on shift-click
2017-05-05 09:29:27 +02:00
Nathan Sobo
35753c3a8d
Add specs for single-, triple-, and cmd-clicking
2017-05-05 09:29:27 +02:00
Nathan Sobo
2996500d90
Handle double and triple click on lines
2017-05-05 09:29:27 +02:00
Nathan Sobo
fab5a93254
Set cursor position on single click
2017-05-05 09:29:27 +02:00
Nathan Sobo
9a38e8c0d1
Support scrollPastEnd option
2017-05-05 09:29:27 +02:00
Nathan Sobo
c80dbbce3c
Add tests for highlight rendering
2017-05-05 09:29:27 +02:00
Nathan Sobo
003f6ff231
Add test for off-screen cursors of selections intersecting rendered rows
...
We should not attempt to render these cursors even though part of their
associated selection is visible.
2017-05-05 09:29:27 +02:00
Nathan Sobo
aade501040
Refactor to unify computations related to tiles
2017-05-05 09:29:27 +02:00
Nathan Sobo
09f8a52b9d
Implement special options for line and line number decorations
...
* onlyEmpty
* onlyNonEmpty
* onlyHead
* omitEmptyLastLine
2017-05-05 09:29:27 +02:00
Nathan Sobo
ff325c0151
Render line and line number decorations
2017-05-05 09:29:27 +02:00
Nathan Sobo
e15e7e3c96
Assign width and character dimensions on editor to update soft wraps
2017-05-05 09:29:27 +02:00
Nathan Sobo
30cd83f7aa
Convert DecorationManager to JS
2017-05-05 09:29:27 +02:00
Nathan Sobo
94294d1b92
Test autoscrolling via scrollToScreenPosition instead of cursor
2017-05-05 09:29:27 +02:00