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
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
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
Max Brunsfeld
a16b99fa58
Merge pull request #10062 from atom/mb-emit-state-update-on-model-scroll
...
Emit state update when model's scroll position is changed
2015-12-14 17:38:36 -08:00
Max Brunsfeld
02ab7179ce
Emit state update when model's scroll position is changed
2015-12-14 16:56:53 -08:00
Antonio Scandurra
2e7048d8c6
Merge pull request #10028 from atom/ns-remove-presenter-flags
...
Remove non-essential update guard flags from TextEditorPresenter
2015-12-14 11:43:19 +01:00
Antonio Scandurra
20e8856df1
💄 Minor stylistic change
2015-12-11 13:41:44 -07:00
Antonio Scandurra
d5f67494ab
Add back shouldUpdateDecorations
2015-12-11 13:41:44 -07:00
Nathan Sobo
3233570c0d
Remove flags from presenter. Always perform full state update.
...
Signed-off-by: Max Brunsfeld <maxbrunsfeld@github.com >
2015-12-11 13:41:44 -07:00
Nathan Sobo
5cfd3423bf
Use internal scroll assignment methods when committing logical positions
...
This prevents an addition pending assignment and cuts directly to
adjusting the positions.
2015-12-11 13:34:46 -07:00
Nathan Sobo
85c6139579
Don’t force DOM updates in LinesYardstick
...
Instead, determine the need for a DOM update in the component before
measuring with the lines yardstick, and break `updateSync` into two
explicit pre- and post-measurement phases.
2015-12-10 14:47:05 -07:00
Antonio Scandurra
0218431c62
🐛 Compute content width when the longest row is the first one
2015-11-19 16:38:20 -08:00
Nathan Sobo
b04c26ba30
Discard highlights that end above the visible row range
...
Fixes #9628
2015-11-18 21:32:05 -08:00
Max Brunsfeld
9a35e4c9ec
🎨 Extract methods for setting scroll position based on model
2015-11-10 16:28:31 -08:00
Max Brunsfeld
fefb387d3c
Merge branch 'master' into mb-synchronous-scroll-position
...
Conflicts:
src/text-editor-presenter.coffee
src/text-editor.coffee
2015-11-10 16:23:39 -08:00
Max Brunsfeld
48cc5e713e
Make presenter respond to external changes to model's first visible screen row
2015-11-09 10:13:09 -08:00
Nathan Sobo
fe88611e79
Tear down timers when destroying TextEditorPresenter
2015-11-09 00:35:33 -07:00
Nathan Sobo
a3ff0ad75a
🎨 Rename method
2015-11-09 00:35:28 -07:00
Nathan Sobo
d7b0ab9179
Simplify updating of custom gutter decoration state
2015-11-09 00:35:27 -07:00
Nathan Sobo
92ed7c8b15
Don’t return Decoration objects from model to view
...
Preparation for LayerDecorations, in which individual decoration objects
won’t exist for every marker.
2015-11-09 00:35:27 -07:00
Nathan Sobo
d46091d7e5
Remove dead code
2015-11-09 00:35:27 -07:00
Nathan Sobo
800440d5ca
Remove logging
2015-11-09 00:35:27 -07:00
Max Brunsfeld
cdaac9dfcc
wip
2015-11-09 00:35:18 -07:00
Max Brunsfeld
b58752da38
Keep model's logical scroll position up to date
...
* Remove scrollRow and scrollColumn properties from the presenter
* Assign presenter's scrollTop and scrollLeft based on model's first visible
screen row and column, once the presenter has the required measurements.
2015-11-06 11:16:56 -08:00
Max Brunsfeld
4d40e28c6b
Remove presenter constructor parameters that aren't used in production
2015-11-06 09:56:58 -08:00
Antonio Scandurra
40e3b08a8c
Add TextEditorElement::getMaxScrollTop
2015-10-20 08:36:27 +02:00
Antonio Scandurra
b03aa4bf40
Merge branch 'master' into as-cjk-soft-wrap
...
# Conflicts:
# spec/display-buffer-spec.coffee
2015-10-16 10:23:44 +02:00
Antonio Scandurra
4766c98bbe
Treat Korean characters as different kinds of chars
2015-10-15 21:02:21 +02:00
Antonio Scandurra
7394cc531c
Measure half width characters
2015-10-15 20:06:38 +02:00
Antonio Scandurra
4c66341624
Measure double width char widths
2015-10-15 18:08:35 +02:00
Max Brunsfeld
32780e2823
Merge branch 'master' into ns-alternative-test-env
...
Conflicts:
package.json
2015-10-14 14:12:42 -07:00
Antonio Scandurra
6b01811d20
Avoid stack overflow when scrolling with non-integer values
...
We were mistakenly using the rounded scroll top to guard against such cases.
This fixes it by using `@realScrollTop` instead.
2015-10-14 16:10:12 +02:00
Nathan Sobo
4c51d29868
Merge remote-tracking branch 'origin/master' into ns-alternative-test-env
2015-10-07 16:10:29 -05:00
Nathan Sobo
3636eb35d8
Merge pull request #8811 from atom/as-double-reflow-measurements
...
DOM-based measurements
2015-10-07 15:43:59 -05:00
Antonio Scandurra
112ee01bd9
Don't use atom globals in TextEditorElement
...
...except when the element is instantiated via HTML
2015-10-07 15:25:01 -05:00
Antonio Scandurra
a767ca9892
🚱 Dispose ::onDidUpdateMarkers in presenter
2015-10-07 09:54:59 +02:00
Antonio Scandurra
428f0db75b
🔥
2015-10-06 11:02:36 +02:00
Antonio Scandurra
e8387e0095
🐎
2015-10-06 11:00:50 +02:00
Antonio Scandurra
b31d3d1a3f
Revert " 🐎 Faster line number calculation"
...
This reverts commit e04aef0af3 .
2015-10-06 09:16:29 +02:00
Antonio Scandurra
e04aef0af3
🐎 Faster line number calculation
2015-10-05 17:36:28 +02:00
Antonio Scandurra
1c56c3f951
🎨
2015-10-05 16:32:51 +02:00
Antonio Scandurra
0bee6a0cc1
Avoid invalidating state when clearing screen rows to measure
2015-10-05 16:10:58 +02:00
Antonio Scandurra
beb7896234
Enable subpixel font scaling
...
For certain font sizes, enabling `textRendering: optimizeLegibility` caused a
bunch of measurement-related issues. You can reproduce it by setting the following in your stylesheet:
```
atom-text-editor {
font-size: 14px;
text-rendering: optimizeLegibility;
}
```
Although I wanted to defer subpixel font scaling to a later moment, it seems
like Chrome needs to have it enabled in order to properly support the
"legibility" path for text rendering. (I guess this is part of the reason why
the Chromium team enabled it by default at some point in the past.)
2015-10-02 18:14:09 +02:00
Antonio Scandurra
2ffa7da59e
🐎 Remove rows to measure in the next frame
2015-10-02 12:38:19 +02:00
Antonio Scandurra
e1c3d2ef57
🐎 Avoid recomputing state for lines twice
2015-10-01 17:42:44 +02:00
Antonio Scandurra
b16d2a59f2
💚
2015-10-01 13:58:13 +02:00
Antonio Scandurra
e94ff33d83
🐛 Exclude invalid tiles
2015-10-01 12:58:02 +02:00