Commit Graph

1825 Commits

Author SHA1 Message Date
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
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
4a373a9173 Add 'editor:edit-session-added' event to Editor 2012-11-20 15:43:57 -07:00
Nathan Sobo
056c6c5af2 Add 'editor:active-edit-session-changed' events to Editor 2012-11-20 15:23:30 -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
Corey Johnson & Nathan Sobo
bfb1742285 ctrl-a on an empty line stays on that same line.
Fixes #95
2012-11-19 10:02:31 -08:00
Kevin Sawicki
a249b81c4d Use absolute path when calling Git.isPathIgnored 2012-11-19 09:55:26 -08:00
Kevin Sawicki
c676f6f2dd Default to showing ignored files 2012-11-19 09:48:51 -08:00
Kevin Sawicki
55f88d2d76 Make toggle-ignored-files a window event 2012-11-19 09:30:21 -08:00
Kevin Sawicki
95775361b1 Create method that tests if path is Git ignored 2012-11-19 09:26:00 -08:00
Kevin Sawicki
6f0a680013 Merge return statements 2012-11-19 09:22:45 -08:00
Kevin Sawicki
34e5e4a65b Merge branch 'master' into ignore_git_ignored_paths_in_file_finder 2012-11-19 09:17:09 -08:00
Corey Johnson
5841eba1bc Handle file resurrection :cross: 2012-11-16 16:13:34 -08:00
Corey Johnson
61aecfa58f Backfill specs for SelectList 2012-11-16 11:34:52 -08:00
Corey Johnson
046233cf28 Remove 💩 code 2012-11-16 11:21:24 -08:00
Corey Johnson
040575f0ae Add error div to select-list 2012-11-16 11:04:56 -08:00
Corey Johnson
bc95ae9f3e Don't assume there is a rootView in window.reload
This was causing an error when specs where reloaded.
2012-11-16 09:47:32 -08:00
Nathan Sobo
61ce3b0f1a Simplify TokenizedBuffer#handleBufferChange for row-oriented events
Only talking about rows, instead of both rows and columns makes everything a lot simpler.
2012-11-16 09:23:36 -07:00
Nathan Sobo
a441ddec7c Make TokenizedBuffer emit row-oriented change events 2012-11-16 08:57:59 -07:00
Nathan Sobo
f7b1f0521a Emit row-oriented events from DisplayBuffer 2012-11-16 07:36:36 -07:00
Nathan Sobo
ea2e025400 Simplify DisplayBuffer's change event handling 2012-11-16 07:36:35 -07:00
Nathan Sobo
cf4e87103e Emit row-oriented screen lien change events from EditSession 2012-11-16 07:36:35 -07:00
Nathan Sobo
841e34090b Rename from/to to start/end in Editor's queued change events 2012-11-16 07:36:35 -07:00
Nathan Sobo
8ef8924871 💄 2012-11-16 07:36:35 -07:00
Corey Johnson
5bdfc49f3f Window's title matches TextMate pattern of "#{basename} – #{project.path}" 2012-11-15 17:08:37 -08:00
Corey Johnson
7f999f4a96 Store the RootView's title as a member var instead of on document.title.
Now the window title is mocked to remain static when the spec suite is run.
2012-11-15 15:55:37 -08:00
Nathan Sobo
a1cff240b6 Use 'blink-off' css class to blink the cursor when editor is focused
Rather than managing the visibility directly, a class makes it easy. The cursors will always be toggling this class on and off in the background, but only on the focused editor will it actually have an effect.
2012-11-14 21:43:06 -07:00
Nathan Sobo
e47cc1256d Don't blink the cursor if it should not be visible
Also, when stopping blinking, set the cursor's visibility to whatever it is on the underlying model. This fixes issues where the cursor would blink when there was a selection.
2012-11-14 21:21:48 -07:00
Nathan Sobo
23ab4c193c Merge remote-tracking branch 'origin/master' into batch-screen-updates 2012-11-14 20:54:22 -07:00
Nathan Sobo
6a5b66a687 💄 2012-11-14 20:51:59 -07:00
Nathan Sobo
185ca22488 Make cursor blink by changing CSS visibility with setInterval
This is actually more efficient than the CSS animation we were doing previously, because it doesn't force the cursor to be sampled at 60 FPS for something that changes around twice a second.
2012-11-14 20:43:34 -07:00
Nathan Sobo
5dea68bb4c Status bar only updates modified flag after buffer *stops* changing 2012-11-14 15:34:11 -07:00
Nathan Sobo
4a84c5f8f9 Add 'stopped-changing' event to buffer. Fires 300ms after last change.
This will be used by the status bar and other expensive code that needs to respond to the buffer changing, but that we don't want running on every single keystroke when the user is typing quickly.
2012-11-14 15:33:44 -07:00
Nathan Sobo
00a6472a2c Update display synchronously when scrolling to prevent flicker 2012-11-14 15:10:05 -07:00
Nathan Sobo
7f8e2643f5 Auto-scroll last to avoid forcing a reflow before we're done modifying 2012-11-14 15:04:13 -07:00
Nathan Sobo
28a937089f Trigger 'cursor-move' events when cursor view changes 2012-11-14 14:35:08 -07:00
Nathan Sobo
9424674b37 Trigger 'selection-change' events when selection view changes 2012-11-14 14:34:52 -07:00
Nathan Sobo
a6e928d85a Use MessageChannel-based nextTick to schedule Editor display update
This is the fastest way I've found to get the nextTick behavior, which allows us to aggregate multiple requests for display update (from selection changes, cursor movement, line changes) etc into a single call at the end of processing an event.
2012-11-14 13:57:27 -07:00
Nathan Sobo
3eeb4435a5 Re-render the gutter on changes if the screen or buffer delta are != 0
Basically, we don't re-render the gutter for single-line edits. Every other kind of change does re-render it however.
2012-11-14 13:13:23 -07:00
Nathan Sobo
c68d5fac7d Attach precipitating bufferChange to DisplayBuffer change events
The gutter can use this to determine if the change might have altered line numbers, for example if it's inside a fold.
2012-11-14 13:07:42 -07:00
Corey Johnson & Nathan Sobo
9fa577f8c4 Using requestAnimationFrame with some disabled features
Not sure if it feels faster, but the code is a bit more organized at least.
2012-11-13 18:25:29 -07:00
Corey Johnson & Nathan Sobo
97e3a8f248 Lipstick 2012-11-13 17:23:19 -07:00