Commit Graph

10178 Commits

Author SHA1 Message Date
Ben Ogle
5942f2997f Remove array joins in buildEmptyLineHtml 2013-10-07 10:28:12 -07:00
Ben Ogle
26a3a77fed Rename ALL_CAPS vars to CapCamelCase 2013-10-07 10:28:12 -07:00
Ben Ogle
a50e948a90 Remove log lines 2013-10-07 10:28:12 -07:00
Ben Ogle
bd8c14355c Move regexes out into variables 2013-10-07 10:28:12 -07:00
Ben Ogle
1a6884ff71 Remove the ALL_CAPS vars replace with CapCamelCase 2013-10-07 10:28:11 -07:00
Ben Ogle
156b6a9490 Make wrapCharacters -> escapeString. Use a regex.
The `htmlForScreenRows` benchmark went from ~3.5 ms to ~2.9ms for a 
call to htmlForScreenRows over the entire screen range.

🐎
2013-10-07 10:28:11 -07:00
Ben Ogle
407ccc4819 Get a few benchmarks in there 2013-10-07 10:28:11 -07:00
Ben Ogle
5516dadffe Remove selective gutter rendering.
It is faster but incorrect in the case of newlines. It will have to be 
rethought. It can be a different unit of work
2013-10-07 10:28:11 -07:00
Ben Ogle
f1cf8496f8 Fix test, use bufferRowsFOrScreenRowsProperly 2013-10-07 10:28:11 -07:00
Ben Ogle
b4afc24ee8 Most of the tests work 2013-10-07 10:28:11 -07:00
Ben Ogle
d0be7fbf8e Add a character width cache based on scopes.
This is slower than the position cache in the best case, but faster
in the worst and average case. With this, you can search for a space
in find and replace, and still scroll the buffer.

In editor.coffee, there are 10,500 spaces. To highlight all of them, 
the previous cache method took 7 seconds, this takes 2 when the cache 
is empty, and about 10ms when the entire file is cached.
2013-10-07 10:28:11 -07:00
Ben Ogle
8463c759b5 Use global range. Faster! Less garbage! 2013-10-07 10:28:11 -07:00
Ben Ogle
5a772d7078 Move back to the node walker and Range()
This is slower than the span compute, but rendering lines without 
tons of spans is much faster than with
2013-10-07 10:28:11 -07:00
Ben Ogle
8ab8201020 More benchmarks for text rendering 2013-10-07 10:28:10 -07:00
Ben Ogle
6eb72ac2a1 Use getElementsByClassName rather than jQuery 2013-10-07 10:28:10 -07:00
Ben Ogle
8a3f137519 Speed up token html generation. 20ms -> 6ms
Character replace was most of it. Removing regex creation, array 
creation and joins seems to reduce the GC pressure. Calling 500 times, 
GC spent 100ms less time.
2013-10-07 10:28:10 -07:00
Ben Ogle
a57c86f4ea Shortcut out of isHidden when we can.
Checking computed style is an order of magnitude more expensive than 
checking the style property.
2013-10-07 10:28:10 -07:00
Ben Ogle
8cd04b5178 Override isHidden for the Editor
We know it's visible if it is on the dom and doesn't have
display == none set. This is an order of magnitude faster than the
default implementation which calls getComputedStyle()
2013-10-07 10:28:10 -07:00
Ben Ogle
d351938702 Speed up setting the hidden input at the same place as the cursor.
Order of magnitude speedup
2013-10-07 10:28:10 -07:00
Ben Ogle
c2bb5a998b Override isHidden for the CursorView
We know it's visible if it is on the dom and doesn't have 
display == none set. This is an order of magnitude faster than the 
default implementation which calls getComputedStyle()
2013-10-07 10:28:10 -07:00
Ben Ogle
303124f1dd Add benchmarks for text rendering 2013-10-07 10:28:10 -07:00
Ben Ogle
875f0ca1e5 Get benchmarks running again: Fix imports. 2013-10-07 10:28:09 -07:00
Ben Ogle
6a494f65a5 💄 2013-10-07 10:28:09 -07:00
Ben Ogle
aa404a316d Don't allow NaNs 2013-10-07 10:28:09 -07:00
Ben Ogle
45d3fea3d0 Update only the changed line numbers 2013-10-07 10:28:09 -07:00
Ben Ogle
0ab382133b Back to display == none for $.fn.isHidden() 2013-10-07 10:28:09 -07:00
Ben Ogle
98a3bb475b Fix for non-extant lines 2013-10-07 10:28:09 -07:00
Ben Ogle
2394f25b92 Add the leftPixel cache back in 2013-10-07 10:28:09 -07:00
Ben Ogle
914288ab86 Wrap each char in a span; compute left position by measuring each span.
This is is faster and simpler than the old method. Running each function
20,000 times yielded these results:

Old: 3750ms
This method: 1523ms
By looking up each char's width in a dict: 29ms
2013-10-07 10:28:08 -07:00
Ben Ogle
aba5eb5b41 Add a cache to positionLeftForLineAndColumn()
This is the slowest function of all.
2013-10-07 10:28:08 -07:00
Ben Ogle
5c46bff4c1 Use isVisible() 2013-10-07 10:28:08 -07:00
Ben Ogle
8f68d62420 Only re render the cursors/selections when in rendered range 2013-10-07 10:28:08 -07:00
Kevin Sawicki
2f46db29b5 Prepare 31.0.0 release v0.31.0 2013-10-04 14:10:47 -07:00
Kevin Sawicki
501b6e0890 Upgrade to to-the-hubs@0.6.0 2013-10-04 14:08:37 -07:00
Kevin Sawicki
1930ad5003 Prepare 30.0.0 release v0.30.0 2013-10-04 13:14:54 -07:00
Kevin Sawicki
dcba2bcc64 Upgrade to to-the-hubs@0.5.0 2013-10-04 13:08:27 -07:00
Kevin Sawicki
668bb9ffc3 Upgrade to collaboration@0.20.0 2013-10-04 13:04:56 -07:00
Kevin Sawicki
80a9cebbef Don't parse empty strings as JSON
windowState can be an empty string which should not be attempted to be
parsed.
2013-10-04 13:01:44 -07:00
Matt Colyer
791d288175 Merge pull request #890 from atom/atom-shell-with-releases-api
Uses GitHub Releases API to download atom-shell.
2013-10-04 10:04:53 -07:00
Kevin Sawicki
8f2770d084 Prevent overriding coffee cache once registered
Previously this was done afterwards in index.html and task.coffee
but should really be handled by the cache itself so any module
require a different version of coffee-script are not reregistering
a different require extension handler.
v0.29.0
2013-10-04 09:25:31 -07:00
Matt Colyer
15a62eab63 Parse multipart response from AWS S3 2013-10-04 09:24:19 -07:00
Kevin Sawicki
8be254c878 Export a register method from coffee-cache
This allows it to be required without having any side effects which
is needed for the clean task that just wanted to remove the cache
directory.
2013-10-04 09:20:46 -07:00
Kevin Sawicki
d973e96846 Prepare 29.0.0 release 2013-10-04 09:04:00 -07:00
Cheng Zhao
d39797fdca Import atomcredentials in cibuild. 2013-10-04 13:39:53 +08:00
Kevin Sawicki
fafaa444c7 Upgrade to exception-reporting@0.3.0 2013-10-03 19:01:53 -07:00
Kevin Sawicki
46a250d4a3 Upgrade to metrics@0.8.0 2013-10-03 18:48:36 -07:00
Kevin Sawicki
a47b3273dd Send events to browser window even when not focused
The window:open-path event regressed and was not being sent to Atom
which prevented windows from being opened with specific file(s) in
the editor.

Also this allows context menus to work even when the dev tools are open.
2013-10-03 18:14:01 -07:00
Kevin Sawicki
573ddc288f Upgrade to find-and-replace@0.24.0 2013-10-03 17:38:51 -07:00
Matt Colyer
de285fdec2 Bump settings-view 2013-10-03 16:40:20 -07:00
Matt Colyer
951d2615bd Bump apm version 2013-10-03 15:32:50 -07:00