1 { classes: Cc, interfaces: Ci } = Components
3 PREF_BRANCH = 'extensions.VimFx.'
4 DEFAULT_PREFS_FILE = 'defaults/preferences/defaults.js'
6 # Default values for preferences are now specified in
7 # defaults/preferences/defaults.js.
10 vimfxBranch = prefs.getBranch(PREF_BRANCH)
12 getBranchPref = (branch, key, defaultValue = undefined) ->
13 type = branch.getPrefType(key)
16 branch.getBoolPref(key)
18 branch.getIntPref(key)
19 when branch.PREF_STRING
20 branch.getCharPref(key)
25 return vimfxBranch.prefHasUserValue(key)
27 getPref = getBranchPref.bind(undefined, vimfxBranch)
30 getComplexPref = (key) ->
31 return vimfxBranch.getComplexValue(key, Ci.nsISupportsString).data
33 setBranchPref = (branch, key, value) ->
36 branch.setBoolPref(key, value)
38 branch.setIntPref(key, value)
40 branch.setCharPref(key, value)
42 branch.clearUserPref(key)
44 setPref = setBranchPref.bind(undefined, vimfxBranch)
47 baseUri = Services.io.newURI(__SCRIPT_URI_SPEC__, null, null)
48 uri = Services.io.newURI(DEFAULT_PREFS_FILE, null, baseUri)
50 branch = prefs.getDefaultBranch('')
51 scope = {pref: setBranchPref.bind(undefined, branch)}
52 Services.scriptloader.loadSubScript(uri.spec, scope)
54 exports.isPrefSet = isPrefSet
55 exports.getPref = getPref
56 exports.getComplexPref = getComplexPref
57 exports.setPref = setPref
58 exports.setDefaultPrefs = setDefaultPrefs