Nathan Sobo
6196882b9d
Include scrollbar dimensions in required measurements in presenter
2015-02-04 11:35:07 -07:00
Nathan Sobo
3973939de1
Don’t constrain scrollTop/Left until required measurements are assigned
...
This commit also adds to the list of required measurements and updates
the spec with a buildPresenter helper to more easily supply default
values for required measurements in each spec when they aren’t relevant
to that spec’s content.
2015-02-04 11:13:24 -07:00
Nathan Sobo
b792190693
Constrain scrollLeft based on computed clientWith and scrollWidth
2015-02-04 10:22:29 -07:00
Nathan Sobo
1ae25ed85d
Make randomized presenter spec failures easier to reproduce
2015-02-04 10:05:47 -07:00
Nathan Sobo
5bb3095ffa
Constrain scrollTop based on clientHeight and scrollHeight
2015-02-04 09:38:00 -07:00
Nathan Sobo
3656d4cca6
Pass options in DisplayBuffer::screenRangeForBufferRange
2015-02-04 08:42:34 -07:00
Nathan Sobo
3e6669cf3e
Log code for repeatable randomized presenter spec failures
2015-02-04 08:42:06 -07:00
Nathan Sobo
6977660699
Store ‘isOnlyWhitespace’ in line presenter state
2015-02-04 07:59:34 -07:00
Nathan Sobo
ba6d11e24e
Merge branch 'master' into ns-editor-presenters
2015-02-04 07:57:04 -07:00
Nathan Sobo
86991bbec2
Merge branch 'driskell-bugs/ident_guide_whitespace_only'
2015-02-03 21:26:25 -07:00
Nathan Sobo
973d7ebf13
Add spec coverage for indent guides + invisibles on blank lines
2015-02-03 21:26:01 -07:00
Nathan Sobo
a685f3dc37
Prevent updates for off-screen line decoration markers on change
...
When there were lots of off-screen markers, we were performing lots of
redundant updates when off-screen markers changed. Now we only perform
updates if they intersect the visible row range.
@maxbrunsfeld this should improve the situation for folding/unfolding
when there are lots of others folds. Let me know.
2015-02-03 21:02:33 -07:00
Nathan Sobo
20a95269c9
Preserve line number for mouseWheelScreenRow in a sane way
...
What we were doing before made no sense.
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 20:41:59 -07:00
Kevin Sawicki
c7315e2be6
Merge pull request #5342 from paulcbetts/deltas
...
Delta Packages for Windows + Update Squirrel.Windows
2015-02-03 17:14:36 -08:00
Kevin Sawicki
a4976c32ae
Remove release notes from event payload
...
The release notes are provided by Squirrel on Mac but not by Squirrel for
Windows and the release notes package pulls them down manually anyway
so this field is no longer needed.
Checking for the presence of the release notes previously was preventing the
event from firing on Windows which would cause old release notes to show in
the package.
Closes #3757
2015-02-03 14:57:33 -08:00
Nathan Sobo
78b8039384
Don’t require sync update before measuring when autoHeight changes
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 15:05:45 -07:00
Nathan Sobo
cd77870286
In presenter, handle the first line being soft-wrapped
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com >
2015-02-03 15:05:44 -07:00
Nathan Sobo
75652e36d9
Remove ? guard from ::oldState and ::newState references
2015-02-03 15:05:44 -07:00
Nathan Sobo
9991cd73c7
Reference scrollingVertically in the proper location in presenter state
2015-02-03 15:05:44 -07:00
Nathan Sobo
ac215e11b4
Fix velocity scrolling upward
...
There’s no need to check that the mouseWheelScreenRow is on screen
before preserving the corresponding line.
2015-02-03 15:05:44 -07:00
Nathan Sobo
20ce35c017
Emit update events in TextEditorPresenter when highlights are removed
2015-02-03 15:05:44 -07:00
Nathan Sobo
edd595a72f
Access mouseWheelScreenRow property instead of calling removed method
2015-02-03 15:05:43 -07:00
Nathan Sobo
0a6116a785
Fix undefined method errors in overlay manager
...
Access properties directly now
2015-02-03 15:05:43 -07:00
Nathan Sobo
2dc29a60ef
Avoid full decorations query when decorations are added
2015-02-03 15:05:43 -07:00
Nathan Sobo
b78522d8e6
Avoid full decoration query when line decorations’ markers change
2015-02-03 15:05:43 -07:00
Nathan Sobo
c6f23c2edb
Dispose of decoration subscriptions when it’s destroyed
2015-02-03 15:05:43 -07:00
Nathan Sobo
342903567e
Avoid full decoration query when line decorations are destroyed
2015-02-03 15:05:43 -07:00
Nathan Sobo
648c58d41e
Hide line decorations for invalid markers again
2015-02-03 15:05:42 -07:00
Nathan Sobo
7deb411e84
Fix randomized spec failures
2015-02-03 15:05:42 -07:00
Nathan Sobo
cf50ec1861
Fix action logging in random spec
2015-02-03 15:05:42 -07:00
Nathan Sobo
4a74d4adba
Avoid decoration queries when updating individual highlight decorations
2015-02-03 15:05:42 -07:00
Nathan Sobo
f337553a70
Handle highlight state updates in ::updateDecorations
2015-02-03 15:05:42 -07:00
Nathan Sobo
0e85efdd28
🐎 Cache line/line-number decorations to avoid per-line queries
2015-02-03 15:05:34 -07:00
Nathan Sobo
3884a30f39
Unify decoration observation
2015-02-03 15:05:33 -07:00
Nathan Sobo
f99b85a299
Use properties directly instead of getters
...
This will emphasize a design where everything is updated when the model
and view measurements change rather than recomputed as needed.
2015-02-03 15:05:33 -07:00
Nathan Sobo
de5c1fc28d
Add randomized fuzz test for TextEditorPresenter
...
This test performs random operations on the editor and assigns random
measurements from the view. After each operation, the state of a
pre-existing presenter is compared with that of a new presenter created
with the same parameters.
Since it’s easier to reason about building fresh state than it is to
reason about state updates, I hope this will catch any bugs in our
update logic as we optimize it and explore every corner case.
2015-02-03 15:05:33 -07:00
Nathan Sobo
89344c6cfd
Update scrollbars state when editor content changes
2015-02-03 15:05:33 -07:00
Nathan Sobo
74e4756ef0
🐎 Don’t update presenter state unless measurements change
2015-02-03 15:05:33 -07:00
Nathan Sobo
510520d2c7
🎨 rename ::getStart/EndRow to ::computeStart/EndRow
2015-02-03 15:05:32 -07:00
Nathan Sobo
4eb39b1be2
Remove unnecessary onDidChangeSoftWrapped subscription
2015-02-03 15:05:32 -07:00
Nathan Sobo
9d507ea692
Break out state updates explicitly when editor content changes
2015-02-03 15:05:32 -07:00
Nathan Sobo
f005b2005f
Add specs for updating scrollWidth when the longest line changes
2015-02-03 15:05:32 -07:00
Nathan Sobo
b521e8dc97
Handle auto-height in TextEditorPresenter
2015-02-03 15:05:32 -07:00
Nathan Sobo
bbc1a264b5
Make each section of presenter state self-contained
...
This means we have some duplicated values in different parts of the
tree, but it’s cleaner in the view since each component only consumes
a single object. Seems like the presenter should convey the correct
data to the correct locations and minimize the logic in the view. A
few duplicated integers is a reasonable trade-off.
2015-02-03 15:05:31 -07:00
Nathan Sobo
da4b3a47ef
Don’t observe decorations in text editor view
2015-02-03 15:05:31 -07:00
Nathan Sobo
0e27bebbb3
Fix indentation
2015-02-03 15:05:31 -07:00
Nathan Sobo
efdba9fc24
Use presenter state for scrollbars and scrollbar corner
2015-02-03 15:05:31 -07:00
Nathan Sobo
0910e86357
Add .right and .bottom to presenter scrollbar states
2015-02-03 15:05:31 -07:00
Nathan Sobo
14776e3f0a
Give each scrollbar its own state object and track visibility
2015-02-03 15:05:30 -07:00
Nathan Sobo
42ab02d7d2
Rename ::clientHeight/Width to ::height and ::contentFrameWidth
...
The term “client” was actually a misnomer here because it typically
means the height excluding the scrollbars, which wasn’t how we were
using it here.
2015-02-03 15:05:30 -07:00