1 utils = require 'utils'
2 hints = require 'mode-hints/hints'
5 onEnter: (vim, storage, [ callback ]) ->
6 markers = hints.injectHints(vim.window.document)
10 storage.markers = markers
11 storage.callback = callback
13 onInput: (vim, storage, keyStr, event) ->
14 { markers, callback } = storage
18 hints.rotateOverlappingMarkers(markers, true)
20 hints.rotateOverlappingMarkers(markers, false)
24 marker.deleteHintChar()
27 return false if keyStr not in utils.getHintChars() or event.ctrlKey or event.metaKey
29 marker.matchHintChar(keyStr)
32 marker.reward() # Add element features to the bloom filter
33 dontEnterNormalMode = callback(marker, markers)
34 vim.enterNormalMode() unless dontEnterNormalMode
39 onEnterNormalMode: (vim, storage) ->
40 hints.removeHints(vim.window.document)
41 storage.markers = storage.callback = undefined