blob: 87872109f9470514a3922544497846a1e778223c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{ViewModel} = require './view-model'
module.exports =
class SearchViewModel extends ViewModel
constructor: (@searchMotion) ->
super(@searchMotion, class: 'search')
@historyIndex = -1
atom.commands.add(@view.editorElement, 'core:move-up', @increaseHistorySearch)
atom.commands.add(@view.editorElement, 'core:move-down', @decreaseHistorySearch)
restoreHistory: (index) ->
@view.editorElement.getModel().setText(@history(index))
history: (index) ->
@vimState.getSearchHistoryItem(index)
increaseHistorySearch: =>
if @history(@historyIndex + 1)?
@historyIndex += 1
@restoreHistory(@historyIndex)
decreaseHistorySearch: =>
if @historyIndex <= 0
# get us back to a clean slate
@historyIndex = -1
@view.editorElement.getModel().setText('')
else
@historyIndex -= 1
@restoreHistory(@historyIndex)
confirm: (view) =>
repeatChar = if @searchMotion.initiallyReversed then '?' else '/'
if @view.value is '' or @view.value is repeatChar
lastSearch = @history(0)
if lastSearch?
@view.value = lastSearch
else
@view.value = ''
atom.beep()
super(view)
@vimState.pushSearchHistory(@view.value)
|