diff options
Diffstat (limited to 'atom/packages/ex-mode/lib/ex-state.coffee')
| -rw-r--r-- | atom/packages/ex-mode/lib/ex-state.coffee | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/atom/packages/ex-mode/lib/ex-state.coffee b/atom/packages/ex-mode/lib/ex-state.coffee deleted file mode 100644 index 7c0f37c..0000000 --- a/atom/packages/ex-mode/lib/ex-state.coffee +++ /dev/null @@ -1,63 +0,0 @@ -{Emitter, Disposable, CompositeDisposable} = require 'event-kit' - -Command = require './command' -CommandError = require './command-error' - -class ExState - constructor: (@editorElement, @globalExState) -> - @emitter = new Emitter - @subscriptions = new CompositeDisposable - @editor = @editorElement.getModel() - @opStack = [] - @history = [] - - @registerOperationCommands - open: (e) => new Command(@editor, @) - - destroy: -> - @subscriptions.dispose() - - getExHistoryItem: (index) -> - @globalExState.commandHistory[index] - - pushExHistory: (command) -> - @globalExState.commandHistory.unshift command - - registerOperationCommands: (commands) -> - for commandName, fn of commands - do (fn) => - pushFn = (e) => @pushOperations(fn(e)) - @subscriptions.add( - atom.commands.add(@editorElement, "ex-mode:#{commandName}", pushFn) - ) - - onDidFailToExecute: (fn) -> - @emitter.on('failed-to-execute', fn) - - onDidProcessOpStack: (fn) -> - @emitter.on('processed-op-stack', fn) - - pushOperations: (operations) -> - @opStack.push operations - - @processOpStack() if @opStack.length == 2 - - clearOpStack: -> - @opStack = [] - - processOpStack: -> - [command, input] = @opStack - if input.characters.length > 0 - @history.unshift command - try - command.execute(input) - catch e - if (e instanceof CommandError) - atom.notifications.addError("Command error: #{e.message}") - @emitter.emit('failed-to-execute') - else - throw e - @clearOpStack() - @emitter.emit('processed-op-stack') - -module.exports = ExState |