extensibility via services

This commit is contained in:
Loic Nageleisen 2015-02-23 14:59:33 +01:00
parent d2bf0c5502
commit 4f2e9d6fd7
5 changed files with 30 additions and 2 deletions

View file

@ -13,7 +13,7 @@ class Command
return unless input.characters.length > 0
[command, args...] = input.characters.split(" ")
func = (new Ex)[command]
func = Ex.singleton()[command]
if func?
func(args...)
else

View file

@ -1,5 +1,6 @@
GlobalExState = require './global-ex-state'
ExState = require './ex-state'
Ex = require './ex'
{Disposable, CompositeDisposable} = require 'event-kit'
module.exports = ExMode =
@ -26,3 +27,6 @@ module.exports = ExMode =
deactivate: ->
@disposables.dispose()
provideEx: ->
registerCommand: Ex.registerCommand.bind(Ex)

View file

@ -1,6 +1,12 @@
path = require 'path'
class Ex
@singleton: =>
@ex ||= new Ex
@registerCommand: (name, func) =>
@singleton()[name] = func
quit: ->
atom.workspace.getActivePane().destroyActiveItem()