Ben Ogle
87687036cb
Add benchmark for empty() vs innerHTML = ''
2013-10-07 10:28:12 -07:00
Ben Ogle
4f1bdee2d7
shift() multiple little arrays. Avoid.
2013-10-07 10:28:12 -07:00
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
probablycorey
a8c008767f
Add TextBuffer::updateCachedDiskContentsAsync
2013-10-07 09:53:53 -07:00
probablycorey
64e4cd3db1
💄
2013-10-07 09:53:13 -07:00
Matt Colyer
bde0a3dff0
Use atom rather than global
2013-10-04 14:39:11 -07:00
Matt Colyer
66635a19d1
Allow updates to the application menu
2013-10-04 14:38:50 -07:00
Matt Colyer
1deba49722
Move Keymap init above MenuManager init
2013-10-04 14:38:43 -07:00
Matt Colyer
0b3a00056f
Handles nested submenus
2013-10-04 14:26:09 -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
Matt Colyer
7b7c9abdeb
Load menus from packages
2013-10-04 13:39:35 -07:00
Matt Colyer
141c4f48bf
Move menu building to the proper place
2013-10-04 13:15:09 -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
73796a27e5
📝 Access config via atom.config not global.config
2013-10-04 12:28:42 -07:00
Matt Colyer
32101c57bf
Load core menus from a file
2013-10-04 12:28:19 -07:00