Commit Graph

13442 Commits

Author SHA1 Message Date
Antonio Scandurra
fcb8a13f4a Use buffer marker events to avoid conversions 2015-12-03 10:48:24 +01:00
Antonio Scandurra
9ef3ecf378 Handle off-screen measurements properly 2015-12-02 18:34:57 +01:00
Antonio Scandurra
87c8694d01 Use ::bottomPixelPositionForRow to scroll logically 2015-12-02 17:21:12 +01:00
Antonio Scandurra
e10fdc234b 🐛 Coordinate conversion is hard 2015-12-02 16:26:10 +01:00
Antonio Scandurra
5bcdcbeef6 🎨 2015-12-02 16:13:44 +01:00
Antonio Scandurra
f30e4ccc9d Use the new LineTopIndex in TextEditorPresenter 2015-12-02 16:01:55 +01:00
Antonio Scandurra
1f20ab5170 Use LinearLineTopIndex in BlockDecorationsPresenter 2015-12-02 14:49:36 +01:00
Antonio Scandurra
60b1d20667 🔥 Remove old code 2015-12-02 09:55:47 +01:00
Antonio Scandurra
1e07b8df05 Handle position between rows correctly 2015-12-02 09:13:06 +01:00
Antonio Scandurra
e0b1cabb21 Implement a linear structure for block decoration coordinates
We still cannot handle `::rowForTopPixelPosition` when the passed top position
is in the middle of two rows and there's also a block decoration. We'll get
there eventually.

Also, the specs in this commit should serve as a good test suite for the future
logarithmic data structure.
2015-12-01 19:33:37 +01:00
Antonio Scandurra
d24290357a Implement block decorations in the components land 2015-12-01 13:36:23 +01:00
Antonio Scandurra
47b16c513c Make sure cursors are updated with respect to block decorations 2015-12-01 09:48:11 +01:00
Antonio Scandurra
da1fd69a1f Start implementing BlockDecorationsComponent 2015-11-30 15:48:09 +01:00
Antonio Scandurra
526a97562e Include block decorations as a separate object on presenter's state 2015-11-30 15:05:15 +01:00
Antonio Scandurra
8a54a2c15b Use a boolean in each line state object 2015-11-30 14:44:58 +01:00
Antonio Scandurra
539a5b0ae7 🐎 Do as little pixel conversion as possible
We desperately need a tree-based data structure. 😢
2015-11-30 14:34:16 +01:00
Antonio Scandurra
b998e7f2d9 🐎 Incremental updates for block decorations 2015-11-30 14:03:45 +01:00
Antonio Scandurra
0419fb16a0 🎨 Improve names a bit 2015-11-30 10:19:53 +01:00
Antonio Scandurra
ef851a822c 🎨 Move block decoration related stuff into its own presenter 2015-11-30 10:12:44 +01:00
Antonio Scandurra
0159d5c31e 🎨 2015-11-27 16:58:08 +01:00
Antonio Scandurra
6ad21307cc Provide blockDecorationsHeight for each line number 2015-11-27 16:27:01 +01:00
Antonio Scandurra
6365c86992 Include blockDecorations inside each line's state 2015-11-27 14:32:01 +01:00
Antonio Scandurra
6611cf8353 Force cursor to be tall as ::lineHeight 2015-11-27 14:05:05 +01:00
Antonio Scandurra
587f862612 Use LinesYardstick consistently 2015-11-27 12:55:09 +01:00
Antonio Scandurra
e1e06580c1 Move position conversion in LinesYardstick 2015-11-27 12:47:47 +01:00
Antonio Scandurra
1a8d7b486d Remove caching by screen rows
Because we cannot use them as a cache key, because markers' position can change
at any time. Performance-wise this is slow with many markers, as we need to do a
lot of buffer-to-screen conversions.
2015-11-27 12:29:14 +01:00
Antonio Scandurra
0b5638f749 Make sure tile positions are computed correctly 2015-11-27 10:47:25 +01:00
Antonio Scandurra
6e2587bc8c 🐎 Cache screen row height
I am trying to defer the usage of fancy algorithms as much as possible. The
current one is linear and should probably be changed, but it performs quite
decently for the time being. Maybe with some more caching we could even avoid to
implement a tree data structure?
2015-11-27 10:30:44 +01:00
Antonio Scandurra
a9cb1bda8d Use ::positionForRow in ::updateTilesState
The algorithm is still super sloooow 🐌, but we'll fix that in a later
commit.
2015-11-27 10:16:38 +01:00
Antonio Scandurra
1b5fd18630 Use ::rowForPosition and ::positionForRow instead of simple math 2015-11-27 09:54:14 +01:00
Antonio Scandurra
02651b7a58 🎨 Rename to ::setBlockDecorationDimensions 2015-11-26 16:10:08 +01:00
Antonio Scandurra
5ac7ffcf48 🎨 Rename to ::blockDecorationsDimensionsById 2015-11-26 16:09:21 +01:00
Antonio Scandurra
89d9a2ce83 🎨 Create block decorations in TextEditor
This is just an experiment, although I like that we can hide some information
(irrelevant to the user) behind a clean API.
2015-11-26 15:40:08 +01:00
Antonio Scandurra
c8254566ef Change verticalScrollbar's height according to block decorations 2015-11-26 15:34:45 +01:00
Nathan Sobo
8978691831 Merge pull request #9773 from atom/mb-ns-prepare-stack-trace-fixes
Allow Error.prepareStackTrace to be temporarily reassigned
2015-11-24 11:59:53 -07:00
Antonio Scandurra
8dbb9cfd55 Use CommandRegistry to listen for native-key-bindings 2015-11-24 16:24:51 +01:00
Antonio Scandurra
7bd62790d2 📝 2015-11-24 14:02:34 +01:00
Antonio Scandurra
b3738cfc34 Interact with DevTools on process.nextTick
Using any of the DevTools synchronous methods causes the bad character input
issue.
2015-11-24 12:51:13 +01:00
Antonio Scandurra
6b5ef9a0aa 🔥 2015-11-24 12:45:15 +01:00
Antonio Scandurra
9e931b15c3 Switch to a Promise-based version of DevTools interaction 2015-11-24 12:21:16 +01:00
Antonio Scandurra
9655d8184e Interact with DevTools asynchronously 2015-11-24 11:43:09 +01:00
Max Brunsfeld
4bc46db355 Still assign error's raw stack when prepareStackTrace is overridden
Signed-off-by: Nathan Sobo <nathan@github.com>
2015-11-23 15:30:11 -08:00
Max Brunsfeld
4616b426b0 Allow Error.prepareStackTrace to be temporarily reassigned
Fixes https://github.com/atom/atom/issues/9660

Signed-off-by: Nathan Sobo <nathan@github.com>
2015-11-23 15:22:15 -08:00
Chen Shen
d17ab332ec fix bug in getRawStack 2015-11-23 14:29:17 -08:00
Max Brunsfeld
30b3cb249e Merge pull request #9636 from DouweM/unique-title
Use unique text editor title in window and tab titles
2015-11-20 16:55:38 -08:00
Nathan Sobo
3e22d9f7a2 Merge PR #9607 with a small change 2015-11-20 10:41:22 -07:00
Antonio Scandurra
a546005c65 Merge pull request #9709 from atom/as-fix-longest-screen-row-issue
Compute content width when the longest row is the first one
2015-11-20 09:24:33 -08:00
Douwe Maan
a7809d6772 Add 'Close Empty Windows' option.' 2015-11-20 16:40:55 +01:00
Antonio Scandurra
93481c8a0d Move ::isTextEditor down into Workspace 2015-11-19 17:56:53 -08:00
Antonio Scandurra
0218431c62 🐛 Compute content width when the longest row is the first one 2015-11-19 16:38:20 -08:00