Nathan Sobo
00832b08bb
Allow editor to be focused when it is clicked
2012-11-29 13:57:29 -07:00
Nathan Sobo
4b88a9f5ea
Expanded snippets are destroyed when the cursor leaves a tab stop
...
For this to work, I needed to make the updating of anchors transactional. Now, all anchors are updated and *then* they emit their events. That way when the cursor moves based on the user typing, the tab stop they're in has a chance to expand before we handle the move event. This prevents spurious cancellation of the snippet when typing on a tab stop.
2012-11-29 13:39:00 -07:00
Nathan Sobo
833ccb30ab
Pass old and new screen position with Anchor/Cursor move events
2012-11-29 13:39:00 -07:00
Nathan Sobo
91e899456a
Rename 'change-screen-position' event to 'moved' on Anchor and Cursor
2012-11-29 13:39:00 -07:00
Corey Johnson
69485724cd
Buffer emits a contents-modified event when it's contents differ from disk.
...
Including when the Buffer's file is removed via another process.
2012-11-29 12:05:05 -08:00
Corey Johnson
ada14a1cba
No longer read a File's contents from disk on creation
2012-11-29 11:26:42 -08:00
Nathan Sobo
747d62b032
Fix triggering of change event after file resurrection
2012-11-29 12:01:16 -07:00
Nathan Sobo
98ef054438
💄
2012-11-29 12:01:16 -07:00
Corey Johnson & Nathan Sobo
2cc73b0285
Print exception in error message when an extension fails to load
2012-11-29 12:01:16 -07:00
Corey Johnson
0f0ff425f4
Show stack trace when an extension fails to load
2012-11-29 08:54:08 -08:00
Corey Johnson & Nathan Sobo
e98b4f9a9b
Use file contents instead of md5 to determine disk change
2012-11-28 17:16:44 -08:00
Corey Johnson & Nathan Sobo
d6009df44e
Buffers retain path when file is deleted and can be re-saved
...
Path watching resumes once the file is saved again. This commit allows files to be created for as-yet nonexistent paths. We won't call `$native.watchPath` until we have at least 1 subscription to the file in JS and the file exists on disk.
Also, we moved execution of the path watcher callbacks until after the callbacks data structure is updated in order to avoid confusing behavior in specs.
2012-11-28 16:55:10 -07:00
Corey Johnson & Nathan Sobo
eb0414f4e7
Emit a contents-conflicted` event instead of contents-change-on-disk
2012-11-28 15:21:12 -07:00
Corey Johnson & Nathan Sobo
d5d4751776
Don't set Buffer's file to null when the file is deleted (retain path)
2012-11-28 13:40:37 -07:00
Corey Johnson & Nathan Sobo
d6168b9954
Add EventEmitter#one which adds a one-shot subscription
2012-11-28 13:40:09 -07:00
Corey Johnson & Nathan Sobo
1aa8f26e94
Scrolling does not jerk to a stop when scrolling w/ a trackpad
...
When scrolling with a trackpad, webkit repeatedly triggers multiple mousewheel events on the original event's target element to simulate the velocity effect we're accustomed to with touchscreen UIs. When scrolling quickly, this clashed with our strategy of removing off-screen lines, because the element was removed before the velocity were done firing.
The solution is to make the overlayer accept mouse events. It lays on top of all the lines, so it is never removed and therefore allows the mousewheel events to run to completion. But, this means we need to transfer mousedown events from the overlayer to the underlying lines.
2012-11-28 12:25:14 -07:00
Nathan Sobo
94220d95a7
When updating lines, build contiguous lines from a single html string
...
This cuts down on parse time and improves the frame rate when scrolling.
2012-11-27 18:54:26 -07:00
Nathan Sobo
c5a3e81dab
Reduce line overdraw to improve scroll performance
2012-11-27 18:19:33 -07:00
Nathan Sobo
d22a199dc6
Simplify handling of 'mousewheel' event
2012-11-27 18:19:17 -07:00
Nathan Sobo
d47a82f585
Handle selection dragging when cursor goes off-screen
2012-11-26 17:21:50 -07:00
Nathan Sobo
bf9a7cc9a1
Fix exception when moving to the end of word when there *is* no word
2012-11-26 15:12:32 -07:00
Nathan Sobo
cc2e1c1381
Merge pull request #99 from github/async-tokenization
...
Tokenize asynchronously
2012-11-23 12:05:20 -08:00
Nathan Sobo
a1ae819908
Only tokenize in background if when a buffer is visible in an editor
...
This will prevent running a bunch of background tokenization when Atom is reloaded. We only perform tokenization to support content that is actually on screen.
2012-11-23 12:41:08 -07:00
Nathan Sobo
f28cedea7d
💄
2012-11-23 12:09:29 -07:00
Nathan Sobo
f466a2eede
Un-F
2012-11-23 10:46:26 -07:00
Nathan Sobo
640bf6dc8d
Refactor background tokenization
2012-11-23 10:37:14 -07:00
Nathan Sobo
bcab21709b
Handle changes that straddle or are inside of the invalid regions
2012-11-22 11:02:14 -07:00
Nathan Sobo
48f9f70dd2
Handle changes in the valid region of a partially tokenized buffer
2012-11-22 10:07:24 -07:00
Nathan Sobo
0fd921bb40
💄 and update specs for async tokenization of invalidated rows
2012-11-21 18:38:39 -07:00
Nathan Sobo
5acd1b6ee3
When a change invalidates subsequent lines, re-tokenize asynchronously
...
This can happen when inserting a quote at the top of the file. It switches all the strings to source and vice versa, throughout the file. This can be very laggy, so it's good to do it asynchronously.
2012-11-21 10:02:52 -07:00
Nathan Sobo
e92d9c5c9d
Reorganize TokenizedBuffer spec
...
It's going to have to cover edge cases in the async tokenization, and the previous structure wasn't going to cut it.
2012-11-21 09:09:08 -07:00
Nathan Sobo
5aba8596a9
Make tokenization synchronous in all specs
...
Disabled some specs that need to make it asynchronous again… will deal with those soon.
2012-11-21 08:22:13 -07:00
Kevin Sawicki
fa0c64de8c
Darken text on non-active tabs
2012-11-20 15:56:23 -08:00
Nathan Sobo
e76169e5a9
Tab text is "untitled" if the buffer has no path
2012-11-20 16:37:59 -07:00
Nathan Sobo
423e8b9dcb
When a buffer's file name changes, its tabs are updated
2012-11-20 16:32:26 -07:00
Nathan Sobo
e1f4d2954c
When a tab is clicked, activate its EditSession
2012-11-20 16:19:50 -07:00
Nathan Sobo
0f2cb6fd96
When an EditSession is removed, remove its tab
2012-11-20 16:03:25 -07:00
Nathan Sobo
69ec6b5441
Add the 'editor:edit-session-removed' event to Editor
2012-11-20 16:03:11 -07:00
Nathan Sobo
e508d73dd4
Always provide the EditSession and its index on EditSession events
2012-11-20 15:49:52 -07:00
Nathan Sobo
ebe8143228
When a new edit session is added, add a new tab for it
2012-11-20 15:44:11 -07:00
Nathan Sobo
4a373a9173
Add 'editor:edit-session-added' event to Editor
2012-11-20 15:43:57 -07:00
Nathan Sobo
16d4698770
When the active edit session changes, updated the highlighted tab
2012-11-20 15:24:20 -07:00
Nathan Sobo
056c6c5af2
Add 'editor:active-edit-session-changed' events to Editor
2012-11-20 15:23:30 -07:00
Nathan Sobo
2d8ffef96b
Highlight the tab for the initial active edit session
2012-11-20 15:06:09 -07:00
Nathan Sobo
031c0e7ee0
Start on tabs extension
2012-11-20 14:54:46 -07:00
Nathan Sobo
b011c0ab88
Kill console.log
2012-11-20 13:06:01 -07:00
Corey Johnson & Nathan Sobo
e52dbb682e
WIP: Perform tokenization in chunks when edit session is shown
2012-11-19 16:50:49 -07:00
Corey Johnson & Nathan Sobo
1cc43adddb
Break out atomic tokens in ScreenLine instead of TextMateGrammar
...
This paves the way for creating untokenized screen lines that still have leading whitespace and tab characters broken out appropriately.
2012-11-19 15:44:24 -07:00
Corey Johnson & Nathan Sobo
f9563f5e55
Fix PathWatcher failures
...
Now when a file is removed, we always remove its subscriptions and its kevent.
2012-11-19 13:16:14 -07:00
Kevin Sawicki
5da44b9eef
Merge branch 'master' into ignore_git_ignored_paths_in_file_finder
2012-11-19 11:07:30 -08:00