Commit Graph

493 Commits

Author SHA1 Message Date
Antonio Scandurra
c0bed9ab50 🐛 Enforce block decorations to be 'before' by default 2016-05-24 10:49:59 +02:00
Antonio Scandurra
896abe358c Merge pull request #11765 from atom/as-fix-presenter-uncaught-exception
Don't render line-numbers corresponding to lines that need measuring
2016-05-16 14:21:43 +02:00
Antonio Scandurra
c13346a455 Show folded marker in the first screen row of a soft-wrapped buffer row 2016-05-16 11:23:54 +02:00
Antonio Scandurra
b5b324875e Don't render line-numbers corresponding to lines that need measuring
Rendering those line numbers in the gutter isn't useful, and it puts
unneeded pressure to the DOM. In the process of changing
`updateLineNumbersState`, we have also refactored it to stop relying on
row ranges being contiguous. This allows that code path to be:

1. Less error-prone, because we were trying to access rows that weren't
actually rendered, thus potentially throwing errors when measuring
non-contiguous screen rows that weren't visible.
2. Tighter, because we can just iterate over each screen row and ask for
its soft-wrap descriptor.
2016-05-16 10:58:37 +02:00
Antonio Scandurra
f9039a35f6 Refactor isRowVisible to isRowRendered
There's a distinction to make between rendered and visible rows, and we
were using the former as if it was the latter. In particular, if a tile
is visible, all its rows get rendered on screen, even though they might
not necessarily be visible by the user.
2016-05-14 17:38:49 +02:00
Antonio Scandurra
f4a31261d0 Delete indent guides code from the presenter and the component
…because we're handling that behavior in `TextEditor` and `DisplayLayer`
now.
2016-05-01 11:48:39 +02:00
Antonio Scandurra
f81f54e08a Apply 'folded' decoration only to 1st screen row of a wrapped buffer row 2016-04-26 12:11:05 +02:00
Antonio Scandurra
754cbc2a67 Merge branch 'master' into ns-switch-to-display-layers
# Conflicts:
#	spec/tokenized-buffer-spec.coffee
2016-04-20 10:55:56 +02:00
Willem Van Lint
8cd48004dd Fixed positioning for overlay 2016-04-09 18:42:18 -07:00
Nathan Sobo
d62ef599cd Replace tokens with tagCodes in DisplayLayer.prototype.getScreenLines 2016-03-18 15:57:49 -06:00
Antonio Scandurra
43f27780fd Fix specs related to the produced HTML line output
This verifies that with the new DisplayLayer the produced output is
cleaner when tags interleave.
2016-03-17 14:56:23 +01:00
Antonio Scandurra
f57fb3176a Add back lineIdForScreenRow 2016-03-17 11:19:05 +01:00
Antonio Scandurra
23ddeb7f08 🔥 Put back commented out LOC 2016-03-17 10:38:23 +01:00
Antonio Scandurra
661417e362 Update lines in TextEditorPresenter.prototype.getPostMeasurementState()
Calling ::updateHorizontalDimensions might cause the editor vertical
coordinates (e.g. height, scroll top) to change, so we need to fetch
lines again from `DisplayLayer`.
2016-03-17 09:42:36 +01:00
Nathan Sobo
8888203005 Drop marker-index dependency 2016-03-14 17:14:27 -06:00
Antonio Scandurra
40beb0bd1e Use new TextBuffer APIs 2016-03-10 16:00:56 +01:00
Antonio Scandurra
dfed7c4537 Merge branch 'master' into ns-use-display-layers
# Conflicts:
#	package.json
#	src/display-buffer.coffee
#	src/text-editor.coffee
#	src/tokenized-buffer.coffee
2016-03-10 13:53:14 +01:00
joshaber
10acfd057f Err, yeah, we care about undefined, not false. 2016-03-03 10:13:26 -05:00
joshaber
98c8a08ac3 s/ignoreScrollPastEnd/scrollPastEnd 2016-03-03 10:06:15 -05:00
joshaber
ff0b9e30a9 Add ignoreScrollPastEnd 2016-02-25 16:59:58 -05:00
Antonio Scandurra
d6132888fa 💚 Attempt to fix specs 2016-02-18 14:18:27 +01:00
Antonio Scandurra
bea324eae9 🔥 Use just isFoldableAtBufferRow 2016-02-17 15:05:31 +01:00
Antonio Scandurra
d05dfa6efe 🐎 Update lines state only in pre-measurement phase 2016-02-17 10:34:21 +01:00
Antonio Scandurra
012fa354c4 Add TokenizedBuffer.prototype.foldableRowsForRowRange 2016-02-17 10:34:21 +01:00
Antonio Scandurra
63270f4174 Add TextEditor.prototype.cursorsForScreenRowRange
So that `TextEditorPresenter` can avoid to scan
through all the cursors to understand whether
they're visible on screen. This dramatically 
reduces the calls to `getScreenRange` and, thus,
makes `updateCursorsState` faster for multi-cursor
edits.
2016-02-16 14:41:24 +01:00
Nathan Sobo
0243a345b7 Merge branch 'master' into ns-use-display-layers 2016-02-09 12:42:57 -07:00
Nathan Sobo
47338253db Adapt to new text-buffer API 2016-01-26 12:38:35 -07:00
Nathan Sobo
ed79413de1 Depend on DisplayLayer for more things 2016-01-19 14:39:37 -07:00
Antonio Scandurra
f81843d465 Merge branch 'master' into as-block-decorations 2016-01-14 09:30:06 -07:00
Nathan Sobo
acbacae6d5 Use TokenizedBuffer as a text decoration layer and render tags 2016-01-13 18:23:22 -07:00
Nathan Sobo
924d880fa8 WIP: Start rendering lines from DisplayLayers 2016-01-13 12:17:01 -07:00
Antonio Scandurra
d370164624 Slightly improve algorithm to calculate @endRow 2016-01-13 09:31:17 -07:00
Antonio Scandurra
1f0e6a0902 Don't calculate height for following decorations at beginning of tiles 2016-01-13 09:21:31 -07:00
Antonio Scandurra
6e5c3e0212 Insert following block decorations into the DOM 2016-01-12 12:51:29 -07:00
Antonio Scandurra
4499fa8d6f Split following and preceding block decorations
In TextEditorPresenter's state for lines.
2016-01-12 12:04:12 -07:00
Antonio Scandurra
5c5e108d9b Conform to the new LineTopIndex interface 2016-01-12 11:38:48 -07:00
Antonio Scandurra
63220f7ead Add presenter specs for block decorations *after* a row 2016-01-12 10:54:56 -07:00
Antonio Scandurra
d00164dc3c Deal with rows instead of points in LineTopIndex 2016-01-08 11:05:55 +01:00
Antonio Scandurra
c7a7f0c6dd 🐛 Ignore setting dimensions for destroyed decorations 2016-01-05 10:56:29 +01:00
Nathan Sobo
6669703677 Force a sync render when measuring if we don’t have a DOM node for a row 2016-01-04 16:40:56 -07:00
Nathan Sobo
9f6fbacddd Don’t clip screen positions in yardstick
By clipping positions only in the TextEditorComponent, we can ensure
that we check for the presence of a rendered line for the clipped row
value.
2016-01-04 16:32:38 -07:00
Antonio Scandurra
eab70d9a95 Invalidate spliced block decorations' dimensions 2015-12-19 15:38:34 +01:00
Antonio Scandurra
7543bcbdc1 🎨 Rearrange code a bit 2015-12-19 14:59:25 +01:00
Antonio Scandurra
07234c5109 Resize all block decorations when width changes 2015-12-19 12:50:58 +01:00
Antonio Scandurra
5fa9d3bc40 Splice LineTopIndex when DisplayBuffer changes
We invalidate whole screen lines accordingly to `DisplayBuffer`, so that we can
catch if there was any screen-only transformation and move block decorations
accordingly.
2015-12-19 11:21:50 +01:00
Antonio Scandurra
907dc661ec 🐎 Make updating block decorations incremental 2015-12-18 12:43:27 +01:00
Antonio Scandurra
da412e92f8 🔥 Remove BlockDecorationsPresenter 2015-12-18 11:54:10 +01:00
Antonio Scandurra
877eea3bd0 Finish integrating LineTopIndex 2015-12-18 11:07:10 +01:00
Antonio Scandurra
6a403e441e Start integrating tree-based LineTopIndex 2015-12-18 10:41:21 +01:00
Antonio Scandurra
8c1f0b0e21 Merge branch 'master' into as-block-decorations
# Conflicts:
#	spec/fake-lines-yardstick.coffee
#	spec/lines-yardstick-spec.coffee
#	spec/text-editor-presenter-spec.coffee
#	src/lines-yardstick.coffee
#	src/text-editor-component.coffee
#	src/text-editor-presenter.coffee
2015-12-18 09:59:12 +01:00