Commit Graph

1442 Commits

Author SHA1 Message Date
Nathan Sobo
f559ad73a7 Make grammar handle lines that don't match *any* of the current rule's patterns
It's possible to get a match based on a lookahead, but not actually have any non-empty capture groups. This should be considered a failed match.
2012-08-08 08:59:13 -06:00
Corey Johnson & Nathan Sobo
827b3e29d3 Implement OnigRegExp.getCaptureTree natively 2012-08-07 16:20:02 -07:00
Nathan Sobo
d520d6c859 WIP: Optimization: compile a single regex for each grammar rule
We compile a giant regex out of all the individual regexes for each pattern by or'ing together a capture group for each one. Then we use the index of the matched capture group to determine which pattern actually matched, and adjust the capture indexes of the subtree to make it appear to start from index 0, so the capture indices on the pattern align properly. There is still broken-ness on more complex patterns, but basic patterns and patterns w/ captures work.
2012-08-06 18:32:55 -06:00
Nathan Sobo
7bc6a5f24b TextMateGrammar handles nested capture groups and trailing lookahead captures
Our previous implementation only allowed for a single layer of capture groups. Now we can have captures within captures. I achieved this by converting the match into a tree before generating tokens. If there are any capture scopes specified, then we will always emit a token for every capture group in the match. This may create some redundant tokens (a serious of 2 or more tokens with the same scopes), but it will at least be technically correct. I think the overhead of removing these redundancies exceeds the cost of maintaining them for now.
2012-08-06 16:35:33 -06:00
Nathan Sobo
0d6d16a438 Move TextMateGrammar.buildCaptureTree to .getCaptureTree method on OnigRegExp 2012-08-06 11:43:44 -06:00
Nathan Sobo
32fc042929 Add TextMateGrammar.buildCaptureTree, which organizes nested captures in a tree
This will be a weapon in dealing with capture groups that nest within other capture groups, and also helps deal with trailing lookahead groups that don't belong in the main match. I made it a class method because it's stateless and that made it easier to test.
2012-08-03 23:52:58 -06:00
Nathan Sobo
fd28a3577a Improve spec description 2012-08-03 23:51:14 -06:00
Corey Johnson & Nathan Sobo
0e1d3fe3a9 wip: fixing capture group problems 2012-08-03 11:38:45 -07:00
Corey Johnson & Nathan Sobo
1a243adfcf All specs pass w/ TextMateGrammar for tokenization (auto-indent disabled) 2012-08-03 12:00:05 -06:00
Corey Johnson
08a55dfcac wip: IndentationForRow almost works TextMate preferences 2012-08-02 17:02:17 -07:00
Corey Johnson
82562c89dd Name onig-reg-exp-spec correctly 2012-08-02 16:25:34 -07:00
Corey Johnson & Nathan Sobo
9ca4c2c347 WIP: Loading TextMate Bundle preferences globally 2012-08-02 13:04:43 -06:00
Corey Johnson
b378620c54 Add TextMateBundle which handles all bundle loading 2012-08-02 11:38:14 -07:00
Corey Johnson
114847fb0f Update display buffer spec 2012-08-02 10:25:55 -07:00
Corey Johnson & Nathan Sobo
0a97cb0590 Tokenized buffer uses TextMate grammar 2012-08-02 10:05:09 -07:00
Corey Johnson & Nathan Sobo
b50b8eacca wip: hooking up tokenized buffer to textmate grammars 2012-08-01 17:54:08 -07:00
Corey Johnson & Nathan Sobo
058f63c01f load all bundle grammars in window.startup 2012-08-01 17:09:29 -07:00
Corey Johnson & Nathan Sobo
370e0b896e Add TextMateGrammar.loadFromBundles() 2012-08-01 16:58:31 -07:00
Nathan Sobo
6de055aa1c Lines aren't taller when they contain an Inconsolata em dash (–) character 2012-08-01 17:04:33 -06:00
Corey Johnson & Nathan Sobo
98ef3e4243 Start on TextMateTheme object 2012-08-01 16:27:32 -06:00
Corey Johnson & Nathan Sobo
ed12f66b13 Do not insert matching bracket unless the following character is whitespace 2012-08-01 13:20:34 -07:00
Nathan Sobo
238fecb766 💄 2012-08-01 14:11:39 -06:00
Nathan Sobo
cdf20c7a15 Rename Parser to TextMateTokenizer 2012-08-01 13:58:38 -06:00
Corey Johnson & Nathan Sobo
fc1228619e Add spec for interpolated strings inside of interpolated strings 2012-08-01 11:49:45 -07:00
Corey Johnson & Nathan Sobo
487c4ed439 $self includes work 2012-08-01 11:45:30 -07:00
Corey Johnson & Nathan Sobo
bccd525084 Handle includes 2012-08-01 11:05:37 -07:00
Corey Johnson & Nathan Sobo
594e27b057 Parser maintains a stack of rules, which begin/end patterns mutate 2012-08-01 10:47:40 -07:00
Corey Johnson & Nathan Sobo
fbdebd644d Revert "Handle patterns that include other patterns from the grammar repository"
This reverts commit 64795c032306200f05ce3b262fe58adc86e06b34.
2012-08-01 09:48:40 -07:00
Corey Johnson & Nathan Sobo
62c5da760c Handle patterns that include other patterns from the grammar repository 2012-08-01 09:48:40 -07:00
Corey Johnson & Nathan Sobo
6af22fce67 Add specs for begin/end patterns with nested patterns. 2012-08-01 09:48:39 -07:00
Corey Johnson & Nathan Sobo
aa02785d67 Parser handles patterns w/ begin/end regexes (if begin/end are on the same line) 2012-08-01 09:48:38 -07:00
Nathan Sobo
7682f586be Parser can tokenize lines containing simple tokens (no nested scopes yet) 2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
a2a58a3506 TextMate parser can parse single plain tokens / tokens with captures 2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
757258dd98 Include 'indices' property on OnigRegExp result with capture group indices 2012-08-01 09:48:37 -07:00
Corey Johnson & Nathan Sobo
7067c35dc0 Add CocoaOniguruma 2012-08-01 09:48:36 -07:00
Corey Johnson & Nathan Sobo
c6bae093c1 Starting on TextMate bundle support 2012-08-01 09:48:35 -07:00
Corey Johnson & Nathan Sobo
a589557aaa Ignore bracket matching when there are multiple cursors 2012-08-01 09:47:12 -07:00
Corey Johnson & Nathan Sobo
97b492edfc When an identical closing bracket is inserted, don't insert a new character and move cursor to the right. 2012-08-01 09:33:42 -07:00
Corey Johnson & Nathan Sobo
3a5e73aa77 Merge branch 'making-folding-better' 2012-07-30 13:43:47 -07:00
Corey Johnson & Nathan Sobo
f7614c210a Add unfold-all and bind it to ctrl-} 2012-07-30 12:11:54 -07:00
Corey Johnson & Nathan Sobo
a7db67e68d When DisplayBuffer.foldBufferRow is called with a buffer row that is within a fold, it folds the scope that incloses the buffer row's fold 2012-07-30 11:46:43 -07:00
Corey Johnson & Nathan Sobo
9622d6f9b3 Rename un/foldScopeContainingBufferRow to un/foldBufferRow.
Scope containing buffer row was a misnomer. Waiting until I implement the repeat folding feature before considering a better name.
2012-07-30 10:25:53 -07:00
Corey Johnson & Nathan Sobo
75f0438f6a Rename fold/unfold to foldCurrentRow/unfoldCurrentRow 2012-07-30 09:58:15 -07:00
Corey Johnson & Nathan Sobo
69d059d24c Make TreeView.moveDown work for nested/empty directories
If the selected entry is the last entry in a directory that *itself* is the last entry of its parent, we need to search upward through our ancestors for the first directory that has a following sibling entry. Also, if the directory is empty, the attempt to select its first element will fail, so we need to search for a next sibling as well.
2012-07-27 21:27:55 -06:00
Corey Johnson
69d7ff0a55 add unfold to display buffer 2012-07-27 16:05:56 -07:00
Corey Johnson
7ff31d1ad7 Remove toggleFold and replace with fold 2012-07-27 13:46:50 -07:00
Corey Johnson
76ffa5a2c5 change toggle-fold to fold 2012-07-27 13:45:13 -07:00
Nathan Sobo
dc662ed071 When ( [ { ' or " is inserted, insert the matching character after the cursor 2012-07-27 13:08:43 -06:00
Nathan Sobo
87f4d8c6e9 Upon inserting '(', insert matching ')' character after cursor 2012-07-27 13:02:26 -06:00
Nathan Sobo
d0d5cb534f Merge branch 'master' of github.com:github/atom 2012-07-27 12:30:17 -06:00
Nathan Sobo
3516dea210 Introduce LanguageMode wrapper for Ace modes as a foundation of our own modes
LanguageMode is the central point for all language-specific behavior associated with an EditSession. There is one LanguageMode instance per EditSession. LanguageMode has access to the EditSession and its TokenizedBuffer, and in reverse the EditSession, DisplayBuffer, and TokenizedBuffer also make use of LanguageMode. This is a bit incestuous, but I think it's okay because you can think of LanguageMode as a swappable strategy object that governs language-specific aspects of that constellation of objects.
2012-07-27 12:30:06 -06:00
Corey Johnson
20ff70115f Fix bug in failing editor spec 2012-07-27 11:11:45 -07:00
Nathan Sobo
79893d96b6 Merge commit '0384f025dd6915d2d9771e37983dc839e49b28f7' 2012-07-26 14:11:29 -06:00
Nathan Sobo
334ba6ba82 Ctrl-meta-1 reveals the active file in the tree view 2012-07-26 14:10:02 -06:00
Corey Johnson
42299c6a71 When the active edit session is modified, and its file is then modified by the file system, it displays an alert. 2012-07-26 10:59:58 -07:00
Nathan Sobo
8b743b90a2 Bugfix: Don't clear selections after running an x command w/ no matches
Operations now return a range to select rather than actually performing a selection in `execute`. This allows the composite command to aggregate all ranges to select and only change the selection if it's non empty. Before we had to clear the selections ahead of time and then rely on each operation to imperatively add its selection. This is easier to control. It also ensures that when we execute a previewed operation, we don't add a selection but instead change the selection.
2012-07-26 11:53:03 -06:00
Nathan Sobo
dcc1193b49 Preserve focus state of command panel's mini-editor on refresh 2012-07-26 11:26:38 -06:00
Nathan Sobo
252a1a4d5f 💄 2012-07-26 10:29:42 -06:00
Nathan Sobo
786c9dd8c8 Merge branch 'master' of github.com:github/atom 2012-07-26 10:09:38 -06:00
Nathan Sobo
54616aee78 Bugfix: When the command panel makes a selection, it destroys surrounding folds 2012-07-26 10:09:28 -06:00
Nathan Sobo
f2fa9793b1 Remove logging 2012-07-26 10:08:16 -06:00
Corey Johnson
1fad6ad869 fixed :probablycorey:'s 💩show 2012-07-25 15:58:22 -07:00
Corey Johnson
470e8a6191 Add rootView.deactivateExtension 2012-07-25 15:45:21 -07:00
Corey Johnson
d737199299 Deactivate the root whew instead of deactivating the tree view 2012-07-25 15:16:13 -07:00
Corey Johnson
c91e28071a Add deactivate to TreeView 2012-07-25 15:16:13 -07:00
Corey Johnson
70dfdc6cdd a TreeView without a root path can be serialized 2012-07-25 15:16:13 -07:00
Nathan Sobo
1886b2a48e Merge branch 'master' of github.com:github/atom into global-find
Conflicts:
	spec/app/buffer-spec.coffee
	spec/extensions/command-panel-spec.coffee
	spec/extensions/tree-view-spec.coffee
	src/app/buffer.coffee
	src/extensions/command-panel/command-panel.coffee
	src/extensions/command-panel/keymap.coffee
2012-07-25 13:38:12 -06:00
Nathan Sobo
7270758a9e Focus the active editor after executing a previewed operation 2012-07-25 13:26:57 -06:00
Nathan Sobo
454557b502 Merge branch 'master' into global-find
Conflicts:
	spec/extensions/command-panel-spec.coffee
	src/app/buffer.coffee
	src/extensions/command-panel/command-panel.coffee
	src/extensions/command-panel/keymap.coffee
2012-07-24 17:59:49 -06:00
Corey Johnson
e491fe7bb7 Clean up after tests 2012-07-24 10:52:42 -07:00
Corey Johnson & Nathan Sobo
239fd2f9e6 buffer triggers a 'path-change' event when a file is moved or removed 2012-07-24 10:34:30 -07:00
Nathan Sobo
66f80c2dd8 Backfill coverage for handling of breaks in Project.scan subprocess output
If the stdout callback is fired with partial data, and it ends right after a path, we need to ensure we don't handle it as if there's an extra newline.
2012-07-24 10:07:07 -06:00
Nathan Sobo
c493272be1 Fix click behavior when the event target is a child of the li instead of the li 2012-07-23 20:12:06 -06:00
Nathan Sobo
da7e1b0509 Meta-w on the preview list closes the command panel, not the entire window 2012-07-23 19:32:46 -06:00
Nathan Sobo
a2522f9b19 Clicking on previewed operations selects their buffer range in active editor 2012-07-23 19:25:29 -06:00
Nathan Sobo
5659f9bab1 Destroy preview list's previous operations when populating new ones 2012-07-23 19:05:37 -06:00
Nathan Sobo
c3c4e07a3f Pressing 'enter' on a global search operation selects it in the active editor 2012-07-23 18:16:37 -06:00
Corey Johnson & Nathan Sobo
9658cf61ff Buffer.getPath() returns null when the buffer's file is deleted on disk 2012-07-23 16:35:24 -07:00
Corey Johnson & Nathan Sobo
8d82f3125f When a file is deleted, associated Files trigger the 'remove' event 2012-07-23 16:35:24 -07:00
Corey Johnson & Nathan Sobo
7962c8ff34 When a file is moved (via the fs) associated File objects update their path and trigger a 'move' event 2012-07-23 16:35:24 -07:00
Nathan Sobo
8f0c8633f8 Move-up / move-down on command panel change the selected operation 2012-07-23 15:01:03 -06:00
Nathan Sobo
c1c055319c Remove redundant describe block
This is now tested via pressing enter on the mini-editor
2012-07-23 13:17:42 -06:00
Nathan Sobo
9d938d84ad Test the 'command-panel:focus-preview' event directly
This is more tidy, breaking out all the cases into a describe hierarchy. The previous test was kinda tacked on in an odd spot.
2012-07-23 12:59:06 -06:00
Nathan Sobo
318ddd8148 Ctrl-2 & ctrl-0 mediate visibility focus of command-panel and the preview list
If the command panel is toggled with ctrl-2, then the preview list will show and become focused. If it's toggled with ctrl-0, the preview list won't be shown. But if it's already showing, focus will just switch to the editor, leaving it visible. It's kind of hard to explain but feels intuitive to me to use.
2012-07-23 12:19:54 -06:00
Nathan Sobo
a0e3ce5f1c Merge branch 'master' into global-find
Conflicts:
	spec/extensions/command-panel-spec.coffee
2012-07-23 11:33:26 -06:00
Nathan Sobo
ab47df1987 Make command-panel sticky like tree view is (fit into the "tool panel" scheme)
Esc on the command panel just moves focus back to the editor. Ctrl-0 will move focus back to the panel if it is open but not focused.
2012-07-23 11:29:52 -06:00
Nathan Sobo
1f5416f5dd Merge branch 'master' into global-find
Conflicts:
	spec/extensions/command-panel-spec.coffee
2012-07-20 19:09:28 -06:00
Nathan Sobo
091b47a5d3 Merge branch 'global-find' of github.com:github/atom into global-find 2012-07-20 19:07:46 -06:00
Nathan Sobo
dbfc9d20f7 Fix broken specs due to keybindings change 2012-07-20 19:07:00 -06:00
Nathan Sobo
89e3f729f5 Un-F 💩 2012-07-20 19:06:48 -06:00
Nathan Sobo
c05fa7dc6f Merge branch 'master' into global-find
Conflicts:
	src/app/buffer.coffee
2012-07-20 19:01:38 -06:00
Nathan Sobo
fe9a82b5b8 Merge branch 'master' of github.com:github/atom 2012-07-20 17:56:47 -06:00
Nathan Sobo
e8a892ee3e Start implementing "tool-panel" keymap scheme
Tool panels will be mapped to ctrl-# bindings. If the panel is focused, the # binding closes it. Otherwise the # binding shows it (if needed) and focuses it. The esc key unfocuses the panel, but does not necessarily close it. Meta-w always closes the panel.

This is the scheme. Right now we only have 2 panels:

Command Panel: Ctrl-0, esc still hides it
Tree View: Ctrl-1, esc just unfocuses it
2012-07-20 17:56:36 -06:00
Corey Johnson & Nathan Sobo
cc292b604d Select preview item when preview list is shown 2012-07-20 14:19:19 -07:00
Nathan Sobo
d16328c533 Meta-shift-f opens the command panel pre-populated with Xx/ to find in project 2012-07-20 13:57:33 -06:00
Nathan Sobo
73654a5e3f Improve command panel meta-f spec 2012-07-20 13:56:55 -06:00
Nathan Sobo
411215f6c8 Fix bug where cursor occasionally precedes '/' after pressing meta-f
Now we always move cursor to end when setting the command panel's mini-editor text.
2012-07-20 10:44:49 -06:00
Nathan Sobo
239cba25e4 Use the silver searcher to implement global search
Parsing uses a simple state machine in `Project.scan`.
2012-07-19 17:28:46 -06:00
Nathan Sobo
f37330a218 Fix spec to now that we don't build PreviewItems 2012-07-19 17:27:51 -06:00
Corey Johnson & Nathan Sobo
f0417e7287 Ensure that Project.scan handles evil file fixtures correctly 2012-07-19 11:15:08 -06:00
Corey Johnson & Nathan Sobo
7a85e07cf1 Project.scan handles paths with newlines 2012-07-19 10:27:42 -06:00
Nathan Sobo
31c3cb14f0 💄 2012-07-19 09:17:52 -06:00
Nathan Sobo
f5e46e57fc Use bundled ack instead of grep
Our ack is slightly modified to use `'\0'` characters instead of `':'` in the --nogroup listing. This makes it easier to handle both `':'` characters and newlines in filenames, but we aren't really doing that yet.
2012-07-19 09:17:44 -06:00
Corey Johnson & Nathan Sobo
4b1403724b Ensure that evil filenames do not hose Project.scan 2012-07-18 17:53:53 -06:00
Corey Johnson & Nathan Sobo
12a576ff95 Command panel can be detached after preview without throwing an exception 2012-07-18 15:19:55 -06:00
Corey Johnson & Nathan Sobo
b959d5aa37 Buffers are memoized on project by path 2012-07-18 12:56:09 -07:00
Corey Johnson & Nathan Sobo
af62c081a1 Remove unneeded code 2012-07-18 11:54:23 -07:00
Corey Johnson & Nathan Sobo
d36873f702 Rename Project.open to Project.buildEditSessionForPath 2012-07-18 11:20:13 -07:00
Corey Johnson
52d60df272 Stylize command panel preview 2012-07-18 09:22:32 -07:00
Corey Johnson
bd9cbde54c More specific tests for command panel previews 2012-07-17 20:12:21 -07:00
Corey Johnson & Nathan Sobo
faea4aedcc Show preview list when X x operation completes 2012-07-17 18:39:29 -06:00
Nathan Sobo
dcb8fd71e0 Convert a command panel spec to integration-style to prepare for command preview 2012-07-17 17:03:19 -06:00
Nathan Sobo
0bc9973d9f Don't set the ':' prompt font in command panel because it looks bad afterward 2012-07-17 16:54:29 -06:00
Nathan Sobo
d8189a6fc4 "X x/regex/" command returns operations
Also, passing an EditSession is optional when calling CommandInterpreter.eval. X commands don't require it, but other commands will throw exceptions if it's missing.
2012-07-17 16:32:20 -06:00
Nathan Sobo
4b147c04e5 RootView.proto.open returns the opened edit session 2012-07-17 14:44:04 -06:00
Corey Johnson & Nathan Sobo
126bdc1138 💄 2012-07-17 14:26:20 -06:00
Corey Johnson & Nathan Sobo
34e96fb8d7 WIP: Adding find all matches in project command 2012-07-17 14:26:12 -06:00
Corey Johnson & Nathan Sobo
c3fe9aa0b3 Implement refcounting scheme on Buffer 2012-07-17 14:24:33 -06:00
Nathan Sobo
330e9cebd9 Make it possible for command compilation to be async by returning promises 2012-07-17 12:02:45 -06:00
Nathan Sobo
1d21de1e83 Merge cursors after buffer changes that didn't occur via the EditSession
The buffer now emits a new event 'update-anchors-after-change' to signal that all the anchors have been updated, which is an appropriate time to merge cursors.
2012-07-17 10:38:01 -06:00
Corey Johnson
5914b6cc2a Add Buffer.reload() 2012-07-16 16:12:09 -07:00
Corey Johnson
611eb93219 Buffer stores a is modified on disk flag 2012-07-16 16:11:52 -07:00
Nathan Sobo
512c1bfdb9 Merge branch 'master' into global-find 2012-07-16 14:56:24 -06:00
Corey Johnson
ac04a8ed66 Allow additional indentation after line has been auto-indented 2012-07-16 10:55:44 -07:00
Corey Johnson
95c3ea1b74 Rename insert tab event to indent 2012-07-16 10:34:02 -07:00
Corey Johnson
453af489d9 un-log 💩 2012-07-16 10:28:52 -07:00
Corey Johnson
5184b90365 Hitting tab on a line (containing only whitespace) will auto indent the line and set the cursor to the end 2012-07-16 10:25:28 -07:00
Corey Johnson
3e3bc99161 Merge branch 'master' into global-find
Conflicts:
	spec/app/editor-spec.coffee
2012-07-16 09:16:07 -07:00
Corey Johnson
e089b74867 Editor.renderedLines' css width is set to 100% when editor.maxScreenLineLength() is less than Editor.scrollView's width 2012-07-16 09:14:33 -07:00
Nathan Sobo
1ac6581f33 EditSession.setSelectedBufferRanges recycles selection instances
This prevents changing the scroll position when it isn't necessary.
2012-07-15 17:32:30 -06:00
Nathan Sobo
075968e42c Associate compiled operations with anchor ranges. All tests pass again.
This allows them to update their target range in the face of upstream changes.
2012-07-13 19:46:08 -06:00
Corey Johnson & Nathan Sobo
fd24b82d47 WIP: Converting to operations, but substitution operations need anchor ranges 2012-07-13 18:30:10 -06:00
Corey Johnson & Nathan Sobo
926067164d Buffer updates anchors when it changes instead of EditSession 2012-07-13 17:42:41 -06:00
Corey Johnson & Nathan Sobo
c7b7135388 Temporary fix: When editor is resized, adjust width of rendered lines.
We do this to ensure that the lines aren't longer than the scroll view if they don't have to be. We really should use min-width instead because it's automatic. Also, trigger window resize when we make the editor narrower.
2012-07-13 17:17:18 -06:00
Corey Johnson & Nathan Sobo
e15f2204c7 Merge branch 'global-find' of github.com:github/atom into global-find 2012-07-13 15:12:41 -06:00
Corey Johnson & Nathan Sobo
42f322a112 CommandInterpreter uses project and edit sessions instead of editor to execute
We don't want to pass view objects into it!
2012-07-13 15:10:37 -06:00
Corey Johnson
b9d4270693 Merge branch 'master' into global-find 2012-07-13 09:36:21 -07:00
Corey Johnson
9dfa7d9439 When splitting an editor only the active edit session is copied to the new editor. 2012-07-13 09:24:14 -07:00
Corey Johnson & Nathan Sobo
d44c648d4b Editor.renderedLines' width is set to the maximum of either Editor.scrollView's width or the maximum rendered line width 2012-07-13 09:05:38 -07:00
Nathan Sobo
a4db677979 Implement setSelectedBufferRange w/ setSelectedBufferRanges
Also add the preserveFolds option, which doesn't destroy folds containing the selected ranges – mainly for specs right now
2012-07-12 18:57:12 -06:00
Nathan Sobo
f99146b42f EditSession.setSelectedBufferRanges destroys folds
It also clears all existing selections and makes new ones.
2012-07-12 18:40:34 -06:00
Corey Johnson & Nathan Sobo
8e3c3a13a9 Substitution commands don't change editor selection 2012-07-12 17:59:45 -06:00
Corey Johnson & Nathan Sobo
47a9d1284a Reject exec promise with hash instead of string 2012-07-12 12:18:53 -07:00
Corey Johnson & Nathan Sobo
e59d15868d un-f 2012-07-12 12:18:24 -07:00
Corey Johnson & Nathan Sobo
86adf09267 Test that project scan executes callback with match data 2012-07-12 12:12:44 -07:00
Corey Johnson & Nathan Sobo
ded4ac7fa1 WaitsForPromise outputs reject callback arguments 2012-07-12 12:11:48 -07:00
Corey Johnson & Nathan Sobo
1331cfb749 When promise resolution throws an exception, waitsForPromise is halted 2012-07-12 11:45:44 -07:00
Corey Johnson & Nathan Sobo
0d50066dad Add window.originalSetTimeout
Signed-off-by: Corey Johnson & Nathan Sobo <cj+nathan@github.com>
2012-07-12 11:44:07 -07:00
Corey Johnson
ba2e85a548 :lipstick 2012-07-12 10:13:14 -07:00
Corey Johnson & Nathan Sobo
d2d6efdcb5 Project.scan invokes the callback with matches 2012-07-12 11:12:31 -06:00