1 utils = require 'utils'
2 { unload } = require 'unload'
3 { getPref } = require 'prefs'
5 { commands } = require 'commands'
6 { unload } = require 'unload'
7 { getPref } = require 'prefs'
10 observe: (document, topic, addon) ->
11 return unless addon == getPref('addon_id')
13 hintCharsInput = document.querySelector('setting[pref="extensions.VimFx.hint_chars"]')
14 blacklistInput = document.querySelector('setting[pref="extensions.VimFx.black_list"]')
16 customizeButton = document.getElementById('customizeButton')
17 injectHelp = help.injectHelp.bind(undefined, document, commands)
20 when 'addon-options-displayed'
21 hintCharsInput.addEventListener('change', filterChars, false)
22 blacklistInput.addEventListener('change', validateBlacklist, false)
23 customizeButton.addEventListener('command', injectHelp, false)
25 when 'addon-options-hidden'
26 hintCharsInput.removeEventListener('change', filterChars, false)
27 blacklistInput.removeEventListener('change', validateBlacklist, false)
28 customizeButton.removeEventListener('command', injectHelp, false)
30 filterChars = (event) ->
32 input.value = utils.removeDuplicateCharacters(input.value).replace(/\s/g, '')
33 input.valueToPreference()
35 validateBlacklist = (event) ->
37 utils.updateBlacklist()
40 Services.obs.addObserver(observer, 'addon-options-displayed', false)
41 Services.obs.addObserver(observer, 'addon-options-hidden', false)
44 Services.obs.removeObserver(observer, 'addon-options-displayed')
45 Services.obs.removeObserver(observer, 'addon-options-hidden')
47 exports.observe = observe