]> git.gir.st - VimFx.git/blob - extension/packages/options.coffee
Merge remote-tracking branch 'upstream/develop' into zh-CN
[VimFx.git] / extension / packages / options.coffee
1 { removeDuplicateCharacters } = require 'utils'
2 { unload } = require 'unload'
3 { getPref } = require 'prefs'
4 help = require 'help'
5 { commands } = require 'commands'
6
7 observer =
8 observe: (document, topic, addon) ->
9 return unless addon == getPref('addon_id')
10
11 hintCharsInput = document.querySelector('setting[pref="extensions.VimFx.hint_chars"]')
12
13 customizeButton = document.getElementById('customizeButton')
14 injectHelp = help.injectHelp.bind(undefined, document, commands)
15
16 switch topic
17 when 'addon-options-displayed'
18 hintCharsInput.addEventListener('change', filterChars, false)
19 customizeButton.addEventListener('command', injectHelp, false)
20 when 'addon-options-hidden'
21 hintCharsInput.removeEventListener('change', filterChars, false)
22 customizeButton.removeEventListener('command', injectHelp, false)
23
24 filterChars = (event) ->
25 input = event.target
26 input.value = removeDuplicateCharacters(input.value).replace(/\s/g, '')
27 input.valueToPreference()
28
29 observe = ->
30 Services.obs.addObserver(observer, 'addon-options-displayed', false)
31 Services.obs.addObserver(observer, 'addon-options-hidden', false)
32
33 unload ->
34 Services.obs.removeObserver(observer, 'addon-options-displayed')
35 Services.obs.removeObserver(observer, 'addon-options-hidden')
36
37 exports.observe = observe
Imprint / Impressum