Commit Graph

4213 Commits

Author SHA1 Message Date
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
ae00e888fd un-f buffer spec 2012-11-29 10:36:56 -08:00
Corey Johnson
5c4079a2c8 Use NSASCIIStringEncoding instead of NSNonLossyASCIIStringEncoding 2012-11-29 10:36:16 -08:00
Corey Johnson
02c441e937 If $native.read fails to open a file as UTF8, it opens it as ascii
This is a temporary solution to allow Atom to open binary files. The ultimate goal would be to have a hex-editor built into atom.
2012-11-29 10:34:22 -08:00
Corey Johnson
0f0ff425f4 Show stack trace when an extension fails to load 2012-11-29 08:54:08 -08:00
Corey Johnson
04c4c45190 💄 2012-11-29 08:53:39 -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
2f6566d1c5 Make jasmine timeout quicker (the right way) 2012-11-28 17:15:35 -08:00
Corey Johnson & Nathan Sobo
db78d6a7e5 Ensure PathWatcher isn't watching anything at the end of each spec
This replaces the old functionality of ensuring no files or directories have subscriptions in javascript. We allow this now, but we just don't allow leaked watches at the native layer.
2012-11-28 17:16:15 -07:00
Corey Johnson & Nathan Sobo
ac84a8ab0a Destroy buffer to avoid leaking a path watch 2012-11-28 17:13:32 -07:00
Corey Johnson & Nathan Sobo
ce82439420 Make jasmine time out faster on waitsFor blocks 2012-11-28 16:56:30 -07: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
06e281321b Set z-index on vertical scrollbar so scrollbar can be clicked 2012-11-26 15:06:18 -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
39863e4ebe 💄 2012-11-23 10:48:00 -07:00
Nathan Sobo
f466a2eede Un-F 2012-11-23 10:46:26 -07:00
Nathan Sobo
7dc1490dee Fix stack overflow in DisplayBuffer spec 2012-11-23 10:46:19 -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
893e7428c6 💄 2012-11-21 18:44:42 -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
7c7736c36d Merge pull request #98 from github/tabs
Tabs
2012-11-20 15:44:52 -08:00
Nathan Sobo
2d97367d9d Add 'tabs' extension to default config 2012-11-20 16:41:02 -07: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