mirror of
https://github.com/atom/atom.git
synced 2026-02-19 02:44:29 -05:00
Add deferred package type
This package defers loading until specific commands are triggered on the root view.
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
CommandLoggerView = require './src/command-logger-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class CommandLogger extends AtomPackage
|
||||
activate: (rootView) -> CommandLoggerView.activate(rootView)
|
||||
class CommandLogger extends DeferredAtomPackage
|
||||
attachEvents: ['command-logger:toggle']
|
||||
|
||||
instanceClass: 'command-logger/src/command-logger-view'
|
||||
|
||||
onAttachEvent: (event, instance) -> instance.toggle()
|
||||
|
||||
@@ -6,7 +6,7 @@ describe "CommandLogger", ->
|
||||
|
||||
beforeEach ->
|
||||
rootView = new RootView(require.resolve('fixtures/sample.js'))
|
||||
atom.loadPackage 'command-logger'
|
||||
atom.loadPackage('command-logger').getInstance()
|
||||
editor = rootView.getActiveEditor()
|
||||
commandLogger = CommandLogger.instance
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ class CommandLoggerView extends ScrollView
|
||||
initialize: (@rootView, @eventLog={}) ->
|
||||
super
|
||||
|
||||
@rootView.command 'command-logger:toggle', => @toggle()
|
||||
@rootView.command 'command-logger:clear-data', => @eventLog = {}
|
||||
@command 'core:cancel', => @detach()
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
CommandPaletteView = require './src/command-palette-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class CommandPalette extends AtomPackage
|
||||
activate: (rootView) -> CommandPaletteView.activate(rootView)
|
||||
class CommandPalette extends DeferredAtomPackage
|
||||
|
||||
attachEvents: ['command-palette:toggle']
|
||||
|
||||
instanceClass: 'command-palette/src/command-palette-view'
|
||||
|
||||
onAttachEvent: (event, instance) -> instance.attach()
|
||||
|
||||
@@ -8,7 +8,7 @@ describe "CommandPalette", ->
|
||||
|
||||
beforeEach ->
|
||||
rootView = new RootView(require.resolve('fixtures/sample.js'))
|
||||
atom.loadPackage("command-palette")
|
||||
atom.loadPackage("command-palette").getInstance()
|
||||
palette = CommandPalette.instance
|
||||
rootView.attachToDom().focus()
|
||||
rootView.trigger 'command-palette:toggle'
|
||||
|
||||
@@ -7,7 +7,6 @@ module.exports =
|
||||
class CommandPaletteView extends SelectList
|
||||
@activate: (rootView) ->
|
||||
@instance = new CommandPaletteView(rootView)
|
||||
rootView.command 'command-palette:toggle', => @instance.attach()
|
||||
|
||||
@viewClass: ->
|
||||
"#{super} command-palette"
|
||||
|
||||
@@ -1,8 +1,33 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
CommandPanelView = require './src/command-panel-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class CommandPanel extends AtomPackage
|
||||
activate: (rootView, state) -> CommandPanelView.activate(rootView, state)
|
||||
deactivate: -> CommandPanelView.deactivate()
|
||||
serialize: -> CommandPanelView.serialize()
|
||||
class CommandPanel extends DeferredAtomPackage
|
||||
|
||||
attachEvents: [
|
||||
'command-panel:toggle'
|
||||
'command-panel:toggle-preview'
|
||||
'command-panel:find-in-file'
|
||||
'command-panel:find-in-project'
|
||||
'command-panel:repeat-relative-address'
|
||||
'command-panel:repeat-relative-address-in-reverse'
|
||||
'command-panel:set-selection-as-regex-address'
|
||||
]
|
||||
|
||||
instanceClass: 'command-panel/src/command-panel-view'
|
||||
|
||||
onAttachEvent: (event, instance) ->
|
||||
switch event.type
|
||||
when 'command-panel:toggle'
|
||||
instance.toggle()
|
||||
when 'command-panel:toggle-preview'
|
||||
instance.togglePreview()
|
||||
when 'command-panel:find-in-file'
|
||||
instance.attach("/")
|
||||
when 'command-panel:find-in-project'
|
||||
instance.attach("Xx/")
|
||||
when 'command-panel:repeat-relative-address'
|
||||
instance.repeatRelativeAddress()
|
||||
when 'command-panel:repeat-relative-address-in-reverse'
|
||||
instance.repeatRelativeAddressInReverse()
|
||||
when 'command-panel:set-selection-as-regex-address'
|
||||
instance.setSelectionAsLastRelativeAddress()
|
||||
|
||||
@@ -13,7 +13,7 @@ describe "CommandPanel", ->
|
||||
editor = rootView.getActiveEditor()
|
||||
buffer = editor.activeEditSession.buffer
|
||||
CommandPanel = atom.loadPackage('command-panel')
|
||||
commandPanel = CommandPanelView.instance
|
||||
commandPanel = CommandPanel.getInstance()
|
||||
commandPanel.history = []
|
||||
commandPanel.historyIndex = 0
|
||||
|
||||
@@ -36,7 +36,7 @@ describe "CommandPanel", ->
|
||||
rootView.deactivate()
|
||||
rootView2.attachToDom()
|
||||
|
||||
commandPanel = rootView2.activatePackage('command-panel', CommandPanel)
|
||||
commandPanel = rootView2.activatePackage('command-panel', CommandPanel).getInstance()
|
||||
expect(rootView2.find('.command-panel')).toExist()
|
||||
expect(commandPanel.miniEditor.getText()).toBe 'abc'
|
||||
expect(commandPanel.miniEditor.isFocused).toBeTruthy()
|
||||
@@ -49,7 +49,7 @@ describe "CommandPanel", ->
|
||||
rootView3 = RootView.deserialize(rootView2.serialize())
|
||||
rootView2.deactivate()
|
||||
rootView3.attachToDom()
|
||||
commandPanel = rootView3.activatePackage('command-panel', CommandPanel)
|
||||
commandPanel = rootView3.activatePackage('command-panel', CommandPanel).getInstance()
|
||||
|
||||
expect(commandPanel.miniEditor.isFocused).toBeFalsy()
|
||||
rootView3.deactivate()
|
||||
@@ -71,7 +71,7 @@ describe "CommandPanel", ->
|
||||
rootView.deactivate()
|
||||
rootView2.attachToDom()
|
||||
|
||||
commandPanel = rootView2.activatePackage('command-panel', CommandPanel)
|
||||
commandPanel = rootView2.activatePackage('command-panel', CommandPanel).getInstance()
|
||||
expect(commandPanel.history.length).toBe(2)
|
||||
expect(commandPanel.history[0]).toBe('/test2')
|
||||
expect(commandPanel.history[1]).toBe('/test3')
|
||||
|
||||
@@ -16,15 +16,6 @@ class CommandPanelView extends View
|
||||
else
|
||||
@instance = new CommandPanelView(rootView)
|
||||
|
||||
@deactivate: ->
|
||||
@instance.destroy()
|
||||
|
||||
@serialize: ->
|
||||
text: @instance.miniEditor.getText()
|
||||
visible: @instance.hasParent()
|
||||
miniEditorFocused: @instance.miniEditor.isFocused
|
||||
history: @instance.history[-@instance.maxSerializedHistorySize..]
|
||||
|
||||
@deserialize: (state, rootView) ->
|
||||
commandPanel = new CommandPanelView(rootView, state.history)
|
||||
commandPanel.attach(state.text, focus: false) if state.visible
|
||||
@@ -53,15 +44,6 @@ class CommandPanelView extends View
|
||||
@command 'tool-panel:unfocus', => @rootView.focus()
|
||||
@command 'core:close', => @detach(); false
|
||||
@command 'core:confirm', => @execute()
|
||||
|
||||
@rootView.command 'command-panel:toggle', => @toggle()
|
||||
@rootView.command 'command-panel:toggle-preview', => @togglePreview()
|
||||
@rootView.command 'command-panel:find-in-file', => @attach("/")
|
||||
@rootView.command 'command-panel:find-in-project', => @attach("Xx/")
|
||||
@rootView.command 'command-panel:repeat-relative-address', => @repeatRelativeAddress()
|
||||
@rootView.command 'command-panel:repeat-relative-address-in-reverse', => @repeatRelativeAddressInReverse()
|
||||
@rootView.command 'command-panel:set-selection-as-regex-address', => @setSelectionAsLastRelativeAddress()
|
||||
|
||||
@command 'core:move-up', => @navigateBackwardInHistory()
|
||||
@command 'core:move-down', => @navigateForwardInHistory()
|
||||
|
||||
@@ -69,6 +51,14 @@ class CommandPanelView extends View
|
||||
@errorMessages.hide()
|
||||
@prompt.iconSize(@miniEditor.fontSize)
|
||||
|
||||
serialize: ->
|
||||
text: @miniEditor.getText()
|
||||
visible: @hasParent()
|
||||
miniEditorFocused: @miniEditor.isFocused
|
||||
history: @history[-@maxSerializedHistorySize..]
|
||||
|
||||
deactivate: -> @destroy()
|
||||
|
||||
destroy: ->
|
||||
@previewList.destroy()
|
||||
|
||||
@@ -93,7 +83,6 @@ class CommandPanelView extends View
|
||||
@miniEditor.focus()
|
||||
|
||||
attach: (text='', options={}) ->
|
||||
console.trace 'attached', @rootView
|
||||
@errorMessages.hide()
|
||||
|
||||
focus = options.focus ? true
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
FuzzyFinderView = require './src/fuzzy-finder-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class FuzzyFinder extends AtomPackage
|
||||
activate: (rootView) -> FuzzyFinderView.activate(rootView)
|
||||
class FuzzyFinder extends DeferredAtomPackage
|
||||
|
||||
attachEvents: [
|
||||
'fuzzy-finder:toggle-file-finder'
|
||||
'fuzzy-finder:toggle-buffer-finder'
|
||||
'fuzzy-finder:find-under-cursor'
|
||||
]
|
||||
|
||||
instanceClass: 'fuzzy-finder/src/fuzzy-finder-view'
|
||||
|
||||
onAttachEvent: (event, instance) ->
|
||||
switch event.type
|
||||
when 'fuzzy-finder:toggle-file-finder'
|
||||
instance.toggleFileFinder()
|
||||
when 'fuzzy-finder:toggle-buffer-finder'
|
||||
instance.toggleBufferFinder()
|
||||
when 'fuzzy-finder:find-under-cursor'
|
||||
instance.findUnderCursor()
|
||||
|
||||
@@ -10,7 +10,7 @@ describe 'FuzzyFinder', ->
|
||||
beforeEach ->
|
||||
rootView = new RootView(require.resolve('fixtures/sample.js'))
|
||||
rootView.enableKeymap()
|
||||
atom.loadPackage("fuzzy-finder")
|
||||
atom.loadPackage("fuzzy-finder").getInstance()
|
||||
finder = FuzzyFinder.instance
|
||||
|
||||
afterEach ->
|
||||
|
||||
@@ -10,9 +10,6 @@ class FuzzyFinderView extends SelectList
|
||||
|
||||
@activate: (rootView) ->
|
||||
@instance = new FuzzyFinderView(rootView)
|
||||
rootView.command 'fuzzy-finder:toggle-file-finder', => @instance.toggleFileFinder()
|
||||
rootView.command 'fuzzy-finder:toggle-buffer-finder', => @instance.toggleBufferFinder()
|
||||
rootView.command 'fuzzy-finder:find-under-cursor', => @instance.findUnderCursor()
|
||||
|
||||
@viewClass: ->
|
||||
[super, 'fuzzy-finder'].join(' ')
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
MarkdownPreviewView = require './src/markdown-preview-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class MarkdownPreview extends AtomPackage
|
||||
activate: (rootView) -> MarkdownPreviewView.activate(rootView)
|
||||
class MarkdownPreview extends DeferredAtomPackage
|
||||
attachEvents: ['markdown-preview:toggle']
|
||||
|
||||
instanceClass: 'markdown-preview/src/markdown-preview-view'
|
||||
|
||||
onAttachEvent: (event, instance) -> instance.toggle()
|
||||
|
||||
@@ -7,7 +7,7 @@ describe "MarkdownPreview", ->
|
||||
|
||||
beforeEach ->
|
||||
rootView = new RootView(require.resolve('fixtures/markdown'))
|
||||
atom.loadPackage("markdown-preview")
|
||||
atom.loadPackage("markdown-preview").getInstance()
|
||||
markdownPreview = MarkdownPreview.instance
|
||||
|
||||
afterEach ->
|
||||
|
||||
@@ -14,7 +14,6 @@ class MarkdownPreviewView extends ScrollView
|
||||
|
||||
initialize: (@rootView) ->
|
||||
super
|
||||
@rootView.command 'markdown-preview:toggle', => @toggle()
|
||||
@command 'core:cancel', => @detach()
|
||||
|
||||
toggle: ->
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
AtomPackage = require 'atom-package'
|
||||
OutlineView = require './src/outline-view'
|
||||
DeferredAtomPackage = require 'deferred-atom-package'
|
||||
|
||||
module.exports =
|
||||
class Outline extends AtomPackage
|
||||
activate: (rootView) -> OutlineView.activate(rootView)
|
||||
class Outline extends DeferredAtomPackage
|
||||
|
||||
attachEvents: [
|
||||
'outline-view:toggle-file-outline'
|
||||
'outline-view:toggle-project-outline'
|
||||
'outline-view:jump-to-declaration'
|
||||
]
|
||||
|
||||
instanceClass: 'outline-view/src/outline-view'
|
||||
|
||||
onAttachEvent: (event, instance) ->
|
||||
switch event.type
|
||||
when 'outline-view:toggle-file-outline'
|
||||
instance.toggleFileOutline()
|
||||
when 'outline-view:toggle-project-outline'
|
||||
instance.toggleProjectOutline()
|
||||
when 'outline-view:jump-to-declaration'
|
||||
instance.jumpToDeclaration()
|
||||
|
||||
@@ -8,7 +8,7 @@ describe "OutlineView", ->
|
||||
|
||||
beforeEach ->
|
||||
rootView = new RootView(require.resolve('fixtures'))
|
||||
atom.loadPackage("outline-view")
|
||||
atom.loadPackage("outline-view").getInstance()
|
||||
outlineView = OutlineView.instance
|
||||
rootView.attachToDom()
|
||||
setArraySpy = spyOn(outlineView, 'setArray').andCallThrough()
|
||||
|
||||
@@ -11,9 +11,6 @@ class OutlineView extends SelectList
|
||||
|
||||
@activate: (rootView) ->
|
||||
@instance = new OutlineView(rootView)
|
||||
rootView.command 'outline-view:toggle-file-outline', => @instance.toggleFileOutline()
|
||||
rootView.command 'outline-view:toggle-project-outline', => @instance.toggleProjectOutline()
|
||||
rootView.command 'outline-view:jump-to-declaration', => @instance.jumpToDeclaration()
|
||||
|
||||
@viewClass: -> "#{super} outline-view"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user