Nathan Sobo
f8a0058f06
Convert DecorationManager to standard style and remove unused method
2017-05-05 09:29:27 +02:00
Nathan Sobo
b713210b0c
Emit didUpdateDecorations events synchronously
...
The rendering layer can be asynchronous instead, plus layer decorations
should remove the need to emit lots of individual events.
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
Nathan Sobo
b9feddacbe
Fail focus tests quickly and clearly if document isn't focused
2017-05-05 09:29:27 +02:00
Nathan Sobo
3e87f9f889
Add horizontal autoscroll
2017-05-05 09:29:27 +02:00
Nathan Sobo
2ef29dee88
Refactor TextEditorComponent.prototype.updateSync
2017-05-05 09:29:27 +02:00
Nathan Sobo
51755a0f25
Don't render more line numbers than exist
2017-05-05 09:29:27 +02:00
Nathan Sobo
ed537fd61a
Drop suppressLayerUpdateEvent flag
...
We now emit marker layer update events synchronously at the end of
transactions, so this isn't needed or supported by text-buffer.
2017-05-05 09:29:27 +02:00
Nathan Sobo
375b4a00ec
⬆️ etch and text-buffer to support new rendering code
2017-05-05 09:29:27 +02:00
Nathan Sobo
7196b05af7
Cache line number gutter properties during a single frame
...
These properties are somewhat expensive to compute. Since we need to
perform 2 updates per frame to perform horizontal measurement, it's good
to avoid computing the gutter properties twice since they aren't
affected by horizontal measurements in any way.
2017-05-05 09:29:27 +02:00
Nathan Sobo
38f51ce74d
Extract LinesTileComponent to minimize diff/patch overhead
...
When typing on a single line, only a single tile needs to be updated.
When moving the cursor no tiles need to be updated.
2017-05-05 09:29:27 +02:00
Nathan Sobo
eae8e15155
Extract LineNumberGutterComponent to reduce patching
2017-05-05 09:29:27 +02:00
Nathan Sobo
c2dcc0121b
Add a key to line number divs
2017-05-05 09:29:27 +02:00
Nathan Sobo
c22a81dc57
Remove logging
2017-05-05 09:29:27 +02:00
Nathan Sobo
55ed9e4f62
Pre-assign measuremets.scrollTop when autoscrolling
...
This avoids work when the scroll event happens asynchronously because
we'll treat the event as a no-op since the measurements didn't change.
2017-05-05 09:29:27 +02:00
Nathan Sobo
192e7c6b63
Handle direct focus of hidden input and avoid redundant focus renders
2017-05-05 09:29:27 +02:00
Nathan Sobo
b8a3e2f163
Don't clear elements owned by other components from line nodes map
...
We should really be recycling elements when they move between lines, but
that's a bigger project.
2017-05-05 09:29:27 +02:00
Nathan Sobo
19db16664f
Don't autoscroll to impossible scrollTop locations
2017-05-05 09:29:27 +02:00
Nathan Sobo
d929720d24
Use null sentinel value for autoscrollTop to avoid bug with negatives
2017-05-05 09:29:27 +02:00
Nathan Sobo
ec045d9333
Gracefully handle focus events that occur before the attachedCallback
2017-05-05 09:29:27 +02:00
Nathan Sobo
ff2f9b192a
Implement vertical autoscroll; still need tests
2017-05-05 09:29:27 +02:00
Nathan Sobo
4c51ae77dd
Handle text input
2017-05-05 09:29:27 +02:00
Nathan Sobo
c52d66377f
Render hidden input and handle focus and blur
2017-05-05 09:29:27 +02:00
Nathan Sobo
9487c1cd00
Move lines class
2017-05-05 09:29:27 +02:00
Nathan Sobo
b362f746f8
Fix spurious selections marker layer update to avoid extra render
2017-05-05 09:29:27 +02:00
Nathan Sobo
be7f4a5ffd
Add workaround in test, but we need to make MarkerLayer updates sync
2017-05-05 09:29:27 +02:00
Nathan Sobo
d780b15248
Add cursor rendering tests
2017-05-05 09:29:27 +02:00
Nathan Sobo
c8166c1bb3
Render cursors after measuring horizontal positions
2017-05-05 09:29:27 +02:00
Nathan Sobo
43386b0483
Always update twice assuming we may need to measure
...
This prepares the ground for measuring absoltue cursor positions.
2017-05-05 09:29:27 +02:00
Nathan Sobo
583c2c537d
Iron out scheduling issues
...
* Ensure multiple calls to scheduleUpdate only result in a single call
to updateSync in the future.
* Explicit calls to update sync after scheduling an update fulfill the
scheduled update.
* Track whether we think the editor is visible or not to avoid redundant
didShow calls.
* Ensure we only update on resize events if the editor actually changed
size.
2017-05-05 09:29:27 +02:00
Nathan Sobo
19d1d148eb
Measure the longest visible screen line on initial render
2017-05-05 09:29:27 +02:00
Nathan Sobo
ede5d5e5f4
Add coverage for gutter measurement and horizontal translation on scroll
2017-05-05 09:29:27 +02:00
Nathan Sobo
b863790390
Start on new TextEditorComponent specs; avoid excessive line numbers
2017-05-05 09:29:27 +02:00
Nathan Sobo
9765d9dbcd
Translate gutter so it remains visible when scrolling to the right
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2017-05-05 09:29:27 +02:00
Nathan Sobo
d2d560eac6
Render character measurement line via virtual DOM
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2017-05-05 09:29:27 +02:00
Nathan Sobo
b38fafc83a
Absolutely position line number tiles
...
Static positioning doesn’t seem to improve layout performance
2017-05-05 09:29:27 +02:00
Nathan Sobo
aed4d8876f
Use contain: strict on line number gutter and its tiles
...
This improves layout time of scrolling by limiting the extent of gutter re-layouts.
Signed-off-by: Antonio Scandurra <as-cii@github.com >
2017-05-05 09:29:27 +02:00
Nathan Sobo
f94144ff4b
WIP
2017-05-05 09:29:27 +02:00
Nathan Sobo
f237d70357
WIP
2017-05-05 09:29:27 +02:00
Nathan Sobo
1f068bde62
Enable experimental web platform features
...
This will facilitate #13880
2017-05-03 14:21:24 +02:00
Wliu
c638f8693a
Update spec reporter relativization
...
Electron 1.6 changed the reporting from .<anonymous> to
jasmine.Spec.<anonymous>
2017-05-03 14:21:24 +02:00
Nathan Sobo
9bc53948b7
⬆️ electron to 1.6.5
2017-05-03 14:21:24 +02:00
Antonio Scandurra
d9004769e0
Disable auxclick
2017-05-03 14:21:24 +02:00
Antonio Scandurra
0bd1255b15
Solve CSP issues for all media types
2017-05-03 14:21:24 +02:00
Antonio Scandurra
32db6a46dc
Fix CSP for fonts
2017-05-03 14:21:24 +02:00
Wliu
631861a366
⬆️ electron@1.6.4
...
For Windows sourcemap support
2017-05-03 14:21:24 +02:00
Nathan Sobo
4548fe8358
Upgrade to Electron 1.6.3
2017-05-03 14:21:24 +02:00
Nathan Sobo
c28685c816
Don't use --eval when forking child process in Task
...
There seems to be an Electron bug or something where the child process
isn't receiving messages when --eval is used. It isn't necessary anyway
if we we convert task-bootstrap.coffee to vanilla JS.
2017-05-03 14:21:24 +02:00
Nathan Sobo
06774dbff8
Call compiled functions with Buffer for Electron 1.6 compatibility
2017-05-03 14:21:24 +02:00