Nathan Sobo
9c98e971fc
Key binding selectors match events on descendants
2012-01-11 13:16:10 -08:00
Nathan Sobo
18e614e88d
Start experiment: associate key bindings with CSS selectors
...
KeyEventHandler holds references to BindingSets. The name "binding set"
is based on the concept of a CSS ruleset. The idea is to choose a key
binding for an event based on what selectors (match / most closely
contain) the event's target DOM node.
2012-01-11 13:16:10 -08:00
Nathan Sobo
3a1d167a0f
Command map allows for ambiguous key pattern prefix matches.
...
If we have pattern 'da' and 'dad' both mapped, when 'da' is typed, the KeyMap waits for a given timeout for another character to be entered. If the time elapses, it goes ahead and executes the action for 'da'. But if a 'd' is subsequently entered, it executes 'dad'.
2012-01-11 13:16:10 -08:00
Nathan Sobo
d0ff3c7d4a
Start on CommandMap for Vim-style command mode. Matches patterns involving multiple key events.
2012-01-11 13:16:10 -08:00
Nathan Sobo
b0dc93d8cc
Fix breakage
2012-01-07 02:07:55 -08:00
Nathan Sobo
36e9269e85
Merge branch 'master' of github.com:probablycorey/Atomicity
2012-01-06 19:57:35 -08:00
Nathan Sobo
df7ad14e2c
💄
2012-01-06 15:18:10 -08:00
Corey Johnson & Nathan Sobo
18b9782b16
Opening a previously opened url restores the same buffer and session.
2012-01-05 16:33:53 -08:00
Corey Johnson & Nathan Sobo
12cf511a40
💄
2012-01-05 13:10:00 -08:00
Corey Johnson & Nathan Sobo
8446b6c751
Open buffers with Project.open
2012-01-05 13:08:55 -08:00
Corey Johnson & Nathan Sobo
23c3cbf85f
Add Project.open, which returns a buffer for an absolute/relative path.
2012-01-05 12:02:25 -08:00
Corey Johnson & Nathan Sobo
5293ba7469
Add fs.join
2012-01-05 12:01:55 -08:00
Corey Johnson & Nathan Sobo
1c24ad0fdd
Eliminate Editor.open
2012-01-05 11:26:14 -08:00
Corey Johnson & Nathan Sobo
aee7df0b9f
Add Editor.setBuffer
2012-01-05 11:13:55 -08:00
Corey Johnson
4121b2076e
Display relative paths in the file finder
2012-01-05 11:01:17 -08:00
Nathan Sobo
192166d61a
Merge branch 'master' of github.com:probablycorey/Atomicity
...
Conflicts:
src/atom/project.coffee
2012-01-04 19:05:01 -08:00
Nathan Sobo
1689824ad7
💄
2012-01-04 19:08:23 -07:00
Nathan Sobo
629c1ef239
If passed a directory path, fs.directory returns the path it is given (not the parent dir)
2012-01-04 19:07:55 -07:00
Nathan Sobo
80e4fda2f9
Filter out directory paths for FileFinder in Objective-C instead of JS.
...
Rename FileSystemHelper-contentsOfDirectoryAtPath… to -listFilesAtPath to make it clear that we're only listing files, not subdirectories. This is a fairly special purpose method but it saves us from calling back into objective-c a ton of times to filter them in JS, and makes bringing up the file finder ~2x as fast.
2012-01-04 18:22:22 -07:00
Nathan Sobo
be0fa84f1f
Move fs support methods out of AtomController into FileSystemHelper
2012-01-04 18:01:31 -07:00
Corey Johnson
7e270d641d
FileFinder removes itself when item is selected.
2012-01-04 15:47:41 -08:00
Corey Johnson
3ffe57f228
Project.getFilePaths returns full urls.
...
FileFinder.initialize takes a 'selected' callback.
2012-01-04 15:30:41 -08:00
Nathan Sobo
816f3774e1
Merge branch 'master' into asyncfs
2012-01-04 13:58:10 -07:00
Nathan Sobo
c21083ae24
Merge branch 'asyncfs' of github.com:probablycorey/Atomicity into asyncfs
2012-01-04 13:30:56 -07:00
Nathan Sobo
40e629b0ff
Remove benchmarking calls.
2012-01-04 13:30:26 -07:00
Corey Johnson & Nathan Sobo
236ea5e906
RootView handles opening directories
2012-01-04 10:51:41 -08:00
Nathan Sobo
faa39f6bdb
Construct native JS array/strings in C for fs.async.list callback.
...
Converting from JS-cocoa wrapper values for every element in the array appears to be very slow. Here we construct native JS datatypes and it's much faster. This is very messy and leaky and needs to be cleaned up if we want to keep it.
2012-01-03 22:47:20 -07:00
Corey Johnson & Nathan Sobo
7ba7ba2c81
Ported absolute and isFile to Objective-c.
...
This took fileFinder loading from .8 seconds to .35 seconds.
2012-01-03 17:50:43 -08:00
Corey Johnson & Nathan Sobo
982d5a4426
Benchmarking reveals filtering out non-files takes forevs
...
toString everything 0.199
Filter out non-files 0.703
Everything 0.961
2012-01-03 17:34:21 -08:00
Corey Johnson & Nathan Sobo
44802e9647
Hitting enter on FileFinder opens file in new window.
2012-01-03 17:08:13 -08:00
Corey Johnson & Nathan Sobo
f0976d4650
FileFinder requires the full filePath.
2012-01-03 17:08:04 -08:00
Nathan Sobo
1420ca9adb
Rename Project.list -> Project.getFilePaths, and change its behavior.
...
getFilePaths only resolves to the project-relative paths of all files in the project, excluding directories.
2012-01-03 17:22:03 -07:00
Nathan Sobo
6dddb1aa26
RootView.toggleFileFinder scans urls asynchronously.
2012-01-03 16:39:09 -07:00
Nathan Sobo
07b40cdbeb
RootView opens a project for the directory of the url passed to initialize.
...
Rename fixtures/file-finder-dir to fixtures/dir, because it's not really file-finder specific.
2012-01-03 16:01:46 -07:00
Corey Johnson & Nathan Sobo
f8b04cd902
RootView is initialized with a url and opens it with its editor
2012-01-03 13:57:10 -08:00
Corey Johnson & Nathan Sobo
5b3e0e9f83
fs.async.list takes a boolean 'recursive' flag.
2012-01-03 14:23:18 -07:00
Corey Johnson & Nathan Sobo
3822549007
Spec passes for fs.async.list.
2012-01-03 14:03:03 -07:00
Corey Johnson
d076b1a48c
Async file finding works with with blocks
2012-01-03 11:11:11 -08:00
Corey Johnson & Nathan Sobo
e327dcc8e5
Experiment with async callbacks from js
2011-12-30 18:02:11 -06:00
Corey Johnson & Nathan Sobo
fe0c6f9a61
Remove common path prefix from FileFinder matches
2011-12-30 11:50:29 -08:00
Corey Johnson & Nathan Sobo
e6053a2d66
FileFinder only returns up to maxResults
2011-12-30 11:37:11 -08:00
Nathan Sobo
ad024bc1e6
Move window-global key bindings from window object to RootView.
...
This makes it simpler to discard bindings between specs: just throw away the RootView. It's also more straightforward to call @bindKey on self in the initialization of RootView, rather than binding to document on window.startup.
2011-12-30 13:26:48 -06:00
Nathan Sobo
a1e0039890
Centralize key binding logic in KeyBinder and jQuery.fn.bindKey extension.
...
This commit removes window.bindKey in favor of binding keys on dom elements. It also refactors pattern parsing in the test helper to use KeyBinder.parseKeyPattern.
2011-12-30 13:19:41 -06:00
Nathan Sobo
5273cb0638
Add $.fn.bindKey, which works on any jquery-wrapped element.
...
If given a string as an action, it attempts to call a method by that name on the element's view object. If given a function, it calls it directly.
2011-12-30 12:33:55 -06:00
Nathan Sobo
dc38a0e375
Add $.fn.view method, which links any jquery element to its parent view.
...
When generating a jQuery fragment with the templating framework, I store the fragment in the 'view' data property on all the fragments elements. This allows us to query an element from the DOM and determine what view object it belongs to.
2011-12-30 12:05:11 -06:00
Corey Johnson & Nathan Sobo
e4d73ace25
Bound up / down keys to moveUp / moveDown in fileFinder
2011-12-29 17:38:08 -08:00
Corey Johnson & Nathan Sobo
98458806ea
Add moveUp and moveDown to FileFinder
2011-12-29 16:43:22 -08:00
Corey Johnson & Nathan Sobo
0f772c0858
Template framework can bind events on the root of views, in addition to descendant elements.
2011-12-29 16:13:16 -08:00
Corey Johnson & Nathan Sobo
5aee51eb35
FileFinder tests pass
2011-12-29 15:37:08 -08:00
Corey Johnson & Nathan Sobo
b279063550
Fix bug where subviews could clobber outlets on superviews.
...
Now we wire outlets before the subviews are attached, preventing any outlets on the subview from overwriting outlets on the superview.
2011-12-29 16:29:06 -06:00