Commit Graph

7825 Commits

Author SHA1 Message Date
Antonio Scandurra
0d4e2b3556 Fix editor component tests on Windows 2017-05-12 13:04:03 +02:00
Nathan Sobo
e62d1b91b7 Unspy Date.now when jasmine.useRealClock is called 2017-05-11 21:33:50 -06:00
Nathan Sobo
ffd154ec34 Fix lint errors 2017-05-11 21:29:36 -06:00
Nathan Sobo
5a9582ed64 Silence error output in test 2017-05-11 21:10:20 -06:00
Nathan Sobo
b7218e5aa4 Fix atom.setSize spec when window is full screen 2017-05-11 21:06:15 -06:00
Nathan Sobo
6c6d38a3f0 Destroy environment to silence leaked editor warning 2017-05-11 21:02:28 -06:00
Nathan Sobo
8743298c4c Avoid polluting test with click events on the test runner
We now pass an isolated document into the AtomEnvironment instance under
test to avoid accidentally handling clicks on the test runner itself.
2017-05-11 17:59:40 -06:00
Nathan Sobo
2e2b35c32c Avoid problems related to calling startEditorWindow in tests 2017-05-11 17:44:16 -06:00
Nathan Sobo
d584bd6adb Eliminate reliance on local storage in HistoryManager
It's causing test failures locally and enough time has passed that most
user data should be transitioned to indexed DB by now.
2017-05-11 16:58:54 -06:00
Nathan Sobo
f8ecf929a8 Disable github package in smoke test – it takes too long to compile 2017-05-11 16:46:02 -06:00
Nathan Sobo
80f033114c Mock Date.now in spec helper in addition to _.now
Signed-off-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2017-05-11 15:20:53 -06:00
Antonio Scandurra
729ae0ea51 Merge branch 'master' into tj-upgrade-electron
# Conflicts:
#	script/package.json
#	src/task.coffee
2017-05-11 18:05:12 +02:00
Antonio Scandurra
32f03c8a22 Delete unused code 2017-05-11 11:07:21 +02:00
Antonio Scandurra
39a5705e39 Re-enable a test that was previously failing 2017-05-11 11:06:35 +02:00
Antonio Scandurra
e89552ea75 Ignore mismatched tags between lines in TokenizedBufferIterator
Previously the DisplayLayer would have issues when closing tags that had
not been previously opened, requiring us to guard against mismatched
scopes at the frontier of asynchronous tokenization (see 5cfe9716 for
more information).

Now the DisplayLayer gracefully handles closing tags that had not been
opened, meaning we can eliminate this costly logic.

Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-10 17:54:14 +02:00
Nathan Sobo
4eecf8d1a6 Don't change number of tiles based on block decorations
This means we may render more tiles than necessary when we have block
decorations, but it prevents changing the number of rendered tiles
during scrolling with certain combinations of line height and editor
height. If it ever becomes a problem we can get smarter about
subtracting the height of the visible block decorations from the editor
height, but for now this gives us more reliable performance for the
common case.
2017-05-09 15:09:14 -06:00
Antonio Scandurra
be2aaa0b22 Use explicit state to recycle tiles instead of modulo scheme
This avoids updating tiles unnecessarily when changing the number of
rendered tiles.

Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-09 17:46:29 +02:00
Max Brunsfeld
1c8847cb4f 🐎 Ensure rendered tile count is stable when scrolling
Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-08 15:50:16 -07:00
Nathan Sobo
f76e850aa5 Fix rendering artifacts when resizing with soft wraps
Previously, we were accidentally depending on the state of the display
layer when forcing it to update its index. This caused us to not index
enough content to cover the visibile area, which meant we weren't
querying enough lines to fill the screen in some situations.
2017-05-08 10:58:33 -06:00
Bryant Ung
f464bb3579 Merge pull request #13947 from anatoli26/master
Make an option to always restore the last session
2017-05-08 09:33:23 -07:00
Antonio Scandurra
df4116d4aa Fix clicking past the content height
Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-05 19:55:14 +02:00
Antonio Scandurra
15f25a745a Update width of content when approximate longest screen row changes 2017-05-05 11:29:57 -06:00
Antonio Scandurra
2855e01289 Don't create empty nodes when a text decoration ends next to a text tag
This was causing problems in measurements because in that code path we
assume that text nodes are never empty. This commit also adds a test
verifying this invariant when a text decoration ending right after a
text tag is added.
2017-05-05 11:22:01 +02:00
Antonio Scandurra
f7b79b477a Update class list even when the editor is not attached 2017-05-05 09:30:08 +02:00
Antonio Scandurra
c541d3941c Fix remaining test failures in core 2017-05-05 09:30:08 +02:00
Nathan Sobo
bc34344d90 Maintain the scroll position when changing font size 2017-05-05 09:30:08 +02:00
Nathan Sobo
c5c48094ba Avoid requesting horizontal measurement when auto-scrolling vertically
This was leaving a measurement request in the map that was getting
picked up on the next frame. In some cases, the requested measurement
row was not present, causing an exception.
2017-05-05 09:30:08 +02:00
Nathan Sobo
1b1973db15 Rename method to match old implementation 2017-05-05 09:30:08 +02:00
Nathan Sobo
c00ad62a0e Pass mini attribute when creating new TextEditor from TextEditorElement
This avoids content being shifted over due to rendering and measuring
the gutter on element creation and then subsequently hiding it.
2017-05-05 09:30:08 +02:00
Nathan Sobo
42bb02c8a8 Account for vertical scrollbar width when soft-wrapping lines 2017-05-05 09:30:08 +02:00
Nathan Sobo
fe13279531 Update DOM in screenPositionForPixelPosition if needed
Some packages are interacting with this method assuming this behavior,
so this commit eliminates `screenPositionForPixelPositionSync` and
instead just performs the DOM update in `screenPositionForPixelPosition`
if it is needed.
2017-05-05 09:30:08 +02:00
Antonio Scandurra
001fef4a05 Don't activate scrollPastEnd for autoHeight editors 2017-05-05 09:30:08 +02:00
Antonio Scandurra
c2b854123b Never create empty spans at the beginning of a row
This was happening when a text decoration overlapped a row, but the next
boundary was located exactly at the beginning of it.
2017-05-05 09:29:30 +02:00
Nathan Sobo
ac8a908385 Implement text decorations in rendering layer 2017-05-05 09:29:30 +02:00
Antonio Scandurra
f17baf4790 Use scope ids instead of tags 2017-05-05 09:29:30 +02:00
Antonio Scandurra
570cfdeaff Ignore resize events if they are delivered while the editor is hidden 2017-05-05 09:29:30 +02:00
Nathan Sobo
c36303e631 Avoid blowing away classes assigned on the editor element by packages
/cc @t9md
2017-05-05 09:29:30 +02:00
Nathan Sobo
c7228f6d81 Fix error when attaching soft-wrap editor in synchronous update mode
Taking the initial measurement was setting the soft wrap column, which
was triggering a display layer reset, which was scheduling an update.
This update occurred at an unexpected time causing an exception.
2017-05-05 09:29:30 +02:00
Nathan Sobo
bd6eedcc88 Eliminate strictly contained divs wrapping lines and highlights
I was hoping to strictly contain the layouts of highlights an lines
separately, since they are updated during different render phases.
Unfortunately, strict containment requires both divs to be positioned
absolutely. This in turn creates separate stacking contexts for lines
and highlights, which makes it impossible to render highlights in front
lines which themes sometimes need to do. For example,
atom-material-syntax pushes bracket matcher highlights to the front so
they are not obscured by the theme's solid black cursor line background.

/cc @as-cii. You should examine my work here and make sure I'm not
screwing something up with your line/block decoration update code.
2017-05-05 09:29:30 +02:00
Antonio Scandurra
72351481c7 Fix positioning for block decorations located at the beginning of a tile 2017-05-05 09:29:30 +02:00
Antonio Scandurra
638bb78ecb Fix build failures 2017-05-05 09:29:30 +02:00
Nathan Sobo
82cdf80f25 Extract CursorsAndInputComponent 2017-05-05 09:29:30 +02:00
Nathan Sobo
1ca4c69c87 WIP: Start extracting gutter component 2017-05-05 09:29:30 +02:00
Nathan Sobo
305fd14cd9 Add TextEditorElement.pixelRectRangeForScreenRange for compatibility 2017-05-05 09:29:30 +02:00
Nathan Sobo
a5a80448cb Add intersectsVisibleRowRange on TextEditorElement 2017-05-05 09:29:30 +02:00
Antonio Scandurra
6ed7cd97cc Add highlight decoration classes to region elements as well
Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-05 09:29:30 +02:00
Antonio Scandurra
4bcace1628 Don't remeasure scrollbars for mini editors
Signed-off-by: Nathan Sobo <nathan@github.com>
2017-05-05 09:29:30 +02:00
Antonio Scandurra
37b5d2eb4d Restore scrollbar positions correctly on reload 2017-05-05 09:29:30 +02:00
Antonio Scandurra
72d6316459 Fix shift-scroll on Windows and Linux 2017-05-05 09:29:29 +02:00
Antonio Scandurra
906b3b05d6 Update mock text editor in gutter-container-spec.coffee 2017-05-05 09:29:29 +02:00