mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
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:
committed by
Corey Johnson & Nathan Sobo
parent
51736e7695
commit
7f4120ce36
@@ -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()
|
||||
|
||||
@@ -18,3 +18,7 @@ window.waitsForPromise = (fn) ->
|
||||
window.waitsFor (moveOn) ->
|
||||
fn().done(moveOn)
|
||||
|
||||
$.fn.resultOfTrigger = (type) ->
|
||||
event = $.Event(type)
|
||||
this.trigger(event)
|
||||
event.result
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user