diff options
| author | Ben Beltran <ben@nsovocal.com> | 2015-07-10 11:12:25 -0500 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2015-07-10 11:12:25 -0500 |
| commit | 24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch) | |
| tree | ded312222bb108923da1820ba40b04d710d20e5b /atom/packages/ex-mode/lib/ex-mode.coffee | |
| parent | eb786e82d170e2abc351a432ade616d6ecdeeb6b (diff) | |
Adds atom
Diffstat (limited to 'atom/packages/ex-mode/lib/ex-mode.coffee')
| -rw-r--r-- | atom/packages/ex-mode/lib/ex-mode.coffee | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/atom/packages/ex-mode/lib/ex-mode.coffee b/atom/packages/ex-mode/lib/ex-mode.coffee new file mode 100644 index 0000000..1a4979d --- /dev/null +++ b/atom/packages/ex-mode/lib/ex-mode.coffee @@ -0,0 +1,36 @@ +GlobalExState = require './global-ex-state' +ExState = require './ex-state' +Ex = require './ex' +{Disposable, CompositeDisposable} = require 'event-kit' + +module.exports = ExMode = + activate: (state) -> + @globalExState = new GlobalExState + @disposables = new CompositeDisposable + @exStates = new WeakMap + + @disposables.add atom.workspace.observeTextEditors (editor) => + return if editor.mini + + element = atom.views.getView(editor) + + if not @exStates.get(editor) + exState = new ExState( + element, + @globalExState + ) + + @exStates.set(editor, exState) + + @disposables.add new Disposable => + exState.destroy() + + deactivate: -> + @disposables.dispose() + + provideEx: -> + registerCommand: Ex.registerCommand.bind(Ex) + + consumeVim: (vim) -> + @vim = vim + @globalExState.setVim(vim) |