ex-mode/lib/ex-view-model.coffee
2015-02-19 18:11:25 +01:00

35 lines
876 B
CoffeeScript

{ViewModel, Input} = require './view-model'
module.exports =
class ExViewModel extends ViewModel
constructor: (@exCommand) ->
super(@exCommand, class: 'command')
@historyIndex = -1
@view.editor.on('core:move-up', @increaseHistoryEx)
@view.editor.on('core:move-down', @decreaseHistoryEx)
restoreHistory: (index) ->
@view.editor.setText(@history(index).value)
history: (index) ->
@exState.getExHistoryItem(index)
increaseHistoryEx: =>
if @history(@historyIndex + 1)?
@historyIndex += 1
@restoreHistory(@historyIndex)
decreaseHistoryEx: =>
if @historyIndex <= 0
# get us back to a clean slate
@historyIndex = -1
@view.editor.setText('')
else
@historyIndex -= 1
@restoreHistory(@historyIndex)
confirm: (view) =>
@value = @view.value
@exState.pushExHistory(@)
super(view)