35 lines
876 B
CoffeeScript
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)
|