diff --git a/src/packages/command-palette/index.coffee b/src/packages/command-palette/index.coffee deleted file mode 100644 index 15d41efb5..000000000 --- a/src/packages/command-palette/index.coffee +++ /dev/null @@ -1,10 +0,0 @@ -DeferredAtomPackage = require 'deferred-atom-package' - -module.exports = -class CommandPalette extends DeferredAtomPackage - - loadEvents: ['command-palette:toggle'] - - instanceClass: 'command-palette/src/command-palette-view' - - onLoadEvent: (event, instance) -> instance.attach() diff --git a/src/packages/command-palette/src/command-palette-view.coffee b/src/packages/command-palette/lib/command-palette-view.coffee similarity index 85% rename from src/packages/command-palette/src/command-palette-view.coffee rename to src/packages/command-palette/lib/command-palette-view.coffee index 90c083d0d..2acb80753 100644 --- a/src/packages/command-palette/src/command-palette-view.coffee +++ b/src/packages/command-palette/lib/command-palette-view.coffee @@ -5,8 +5,8 @@ _ = require 'underscore' module.exports = class CommandPaletteView extends SelectList - @activate: (rootView) -> - @instance = new CommandPaletteView(rootView) + @activate: -> + new CommandPaletteView @viewClass: -> "#{super} command-palette overlay from-top" @@ -16,12 +16,17 @@ class CommandPaletteView extends SelectList previouslyFocusedElement: null keyBindings: null - initialize: (@rootView) -> - @command 'command-palette:toggle', => - @cancel() - false + initialize: -> super + rootView.command 'command-palette:toggle', => @toggle() + + toggle: -> + if @hasParent() + @cancel() + else + @attach() + attach: -> super @@ -34,7 +39,7 @@ class CommandPaletteView extends SelectList events = _.sortBy events, (e) -> e.eventDescription @setArray(events) - @appendTo(@rootView) + @appendTo(rootView) @miniEditor.focus() itemForElement: ({eventName, eventDescription}) -> diff --git a/src/packages/command-palette/package.cson b/src/packages/command-palette/package.cson new file mode 100644 index 000000000..e76ea2d38 --- /dev/null +++ b/src/packages/command-palette/package.cson @@ -0,0 +1,2 @@ +'main': 'lib/command-palette-view' +'activationEvents': ['command-palette:toggle'] diff --git a/src/packages/command-palette/spec/command-palette-spec.coffee b/src/packages/command-palette/spec/command-palette-spec.coffee index 1f56f1ab5..a57533dd9 100644 --- a/src/packages/command-palette/spec/command-palette-spec.coffee +++ b/src/packages/command-palette/spec/command-palette-spec.coffee @@ -1,17 +1,17 @@ RootView = require 'root-view' -CommandPalette = require 'command-palette/src/command-palette-view' +CommandPalette = require 'command-palette/lib/command-palette-view' $ = require 'jquery' _ = require 'underscore' describe "CommandPalette", -> - [rootView, palette] = [] + [palette] = [] beforeEach -> rootView = new RootView(require.resolve('fixtures/sample.js')) - atom.loadPackage("command-palette").getInstance() - palette = CommandPalette.instance + atom.loadPackage("command-palette") rootView.attachToDom().focus() rootView.trigger 'command-palette:toggle' + palette = rootView.find('.command-palette').view() afterEach -> rootView.remove()