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, args) ->
14 storage.commands ?= {}
16 onLeave: (vim, storage, args) ->
17 storage.keys.length = 0
19 onInput: (vim, storage, keyStr, event) ->
20 storage.keys.push(keyStr)
22 { match, exact, command } = searchForMatchingCommand(storage.keys)
26 commandStorage = storage.commands[command.name] ?= {}
27 command.func(vim, commandStorage, event)
28 storage.keys.length = 0
31 storage.keys.length = 0
35 return unless rootWindow = utils.getRootWindow(vim.window)
36 updateToolbarButton(rootWindow, {insertMode: true})
38 return unless rootWindow = utils.getRootWindow(vim.window)
39 updateToolbarButton(rootWindow, {insertMode: false})
40 utils.blurActiveElement(vim.window)
41 onInput: (vim, storage, keyStr) ->
42 if isEscCommandKey(keyStr)
43 vim.enterMode('normal')
47 onEnter: (vim, storage, args) ->
48 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
51 findBar._findField.focus()
52 findBar._findField.select()
54 return unless highlightButton = findBar.getElement("highlight")
55 return unless highlightButton.checked != args.highlight
56 highlightButton.click()
59 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
60 findStorage.lastSearchString = findBar._findField.value
63 onInput: (vim, storage, keyStr) ->
64 return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar()
65 if isEscCommandKey(keyStr) or isReturnCommandKey(keyStr)
66 vim.enterMode('normal')
69 findBar._findField.focus()
71 modes['hints'] = mode_hints