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 # Processes the char, updates and hides/shows markers
14 onInput: (vim, storage, keyStr, event) ->
15 { markers, callback } = storage
19 hints.rotateOverlappingMarkers(markers, true)
21 hints.rotateOverlappingMarkers(markers, false)
25 marker.deleteHintChar()
28 return false if keyStr not in utils.getHintChars() or event.ctrlKey or event.metaKey
30 marker.matchHintChar(keyStr)
33 marker.reward() # Add element features to the bloom filter
40 onEnterNormalMode: (vim, storage) ->
41 hints.removeHints(vim.window.document)
42 storage.markers = storage.callback = undefined