Toggle file-finder with a new CSS-style keybinding

Still doesn't hide when the text field is focused because we need to
handle key events that didn't emerge from Ace. That's next.
This commit is contained in:
Nathan Sobo
2012-01-10 20:06:34 -08:00
committed by Corey Johnson & Nathan Sobo
parent 51736e7695
commit 7f4120ce36
3 changed files with 15 additions and 8 deletions

View File

@@ -44,16 +44,16 @@ describe "RootView", ->
expect(rootView.find('.file-finder')).not.toExist()
waitsForPromise ->
rootView.toggleFileFinder()
rootView.resultOfTrigger 'toggle-file-finder'
runs ->
expect(rootView.find('.file-finder')).toExist()
rootView.toggleFileFinder()
rootView.trigger 'toggle-file-finder'
expect(rootView.find('.file-finder')).not.toExist()
it "shows all relative file paths for the current project", ->
waitsForPromise ->
rootView.toggleFileFinder()
rootView.resultOfTrigger 'toggle-file-finder'
waitsForPromise ->
project.getFilePaths().done (paths) ->
@@ -70,12 +70,12 @@ describe "RootView", ->
it "does not open the FileFinder", ->
expect(rootView.editor.buffer.url).toBeUndefined()
expect(rootView.find('.file-finder')).not.toExist()
rootView.toggleFileFinder()
rootView.trigger 'toggle-file-finder'
expect(rootView.find('.file-finder')).not.toExist()
describe "when a path is selected in the file finder", ->
it "opens the file associated with that path in the editor", ->
waitsForPromise -> rootView.toggleFileFinder()
waitsForPromise -> rootView.resultOfTrigger 'toggle-file-finder'
runs ->
firstLi = rootView.fileFinder.find('li:first')
rootView.fileFinder.select()

View File

@@ -18,3 +18,7 @@ window.waitsForPromise = (fn) ->
window.waitsFor (moveOn) ->
fn().done(moveOn)
$.fn.resultOfTrigger = (type) ->
event = $.Event(type)
this.trigger(event)
event.result

View File

@@ -11,8 +11,8 @@ GlobalKeymap = require 'global-keymap'
module.exports =
class RootView extends Template
content: ->
@link rel: 'stylesheet', href: "#{require.resolve('atom.css')}?#{(new Date).getTime()}"
@div id: 'app-horizontal', =>
@link rel: 'stylesheet', href: "#{require.resolve('atom.css')}?#{(new Date).getTime()}"
@div id: 'app-vertical', outlet: 'vertical', =>
@div id: 'main', outlet: 'main', =>
@subview 'editor', Editor.build()
@@ -22,12 +22,15 @@ class RootView extends Template
initialize: ({url}) ->
@globalKeymap = new GlobalKeymap
@editor.keyEventHandler = @globalKeymap
@globalKeymap.bindKeys '*'
'meta-s': 'save'
'meta-w': 'close'
'meta-t': 'find-files'
'meta-t': 'toggle-file-finder'
@editor.keyEventHandler = @globalKeymap
@on 'toggle-file-finder', (e) => @toggleFileFinder()
if url
@project = new Project(fs.directory(url))