1 utils = require 'utils'
2 { mode_hints } = require 'mode-hints/mode-hints'
3 { updateToolbarButton } = require 'button'
4 { searchForMatchingCommand
7 , findStorage } = require 'commands'
12 onEnter: (vim, storage) ->
14 storage.commands ?= {}
16 onLeave: (vim, storage) ->
17 storage.keys.length = 0
19 onInput: (vim, storage, keyStr, event) ->
20 storage.keys.push(keyStr)
22 { match, exact, command } = searchForMatchingCommand(storage.keys)
26 command.func(vim, event)
27 storage.keys.length = 0
30 storage.keys.length = 0
34 updateToolbarButton(vim.rootWindow, {insertMode: true})
36 updateToolbarButton(vim.rootWindow, {insertMode: false})
37 utils.blurActiveElement(vim.window)
38 onInput: (vim, storage, keyStr) ->
39 if isEscCommandKey(keyStr)
40 vim.enterMode('normal')
44 onEnter: (vim, storage, options) ->
45 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
47 findBar.onFindCommand()
48 findBar._findField.focus()
49 findBar._findField.select()
51 return unless highlightButton = findBar.getElement("highlight")
52 return unless highlightButton.checked != options.highlight
53 highlightButton.click()
56 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
57 findStorage.lastSearchString = findBar._findField.value
60 onInput: (vim, storage, keyStr) ->
61 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
62 if isEscCommandKey(keyStr) or isReturnCommandKey(keyStr)
63 vim.enterMode('normal')
66 findBar._findField.focus()
68 modes['hints'] = mode_hints