1 # This file loads the user config file: config.js and frame.js.
3 createConfigAPI = require('./api')
4 messageManager = require('./message-manager')
5 utils = require('./utils')
7 {OS} = Components.utils.import('resource://gre/modules/osfile.jsm', {})
9 load = (vimfx, options = null, callback = ->) ->
10 configDir = vimfx.options.config_file_directory
16 scope = {vimfx: createConfigAPI(vimfx, options)}
18 # Calling `vimfx.createKeyTrees()` after each `vimfx.set()` that modifies a
19 # shortcut is absolutely redundant and may make Firefox start slower. Do it
21 vimfx.skipCreateKeyTrees = true
22 error = loadFile(configDir, 'config.js', scope)
23 vimfx.skipCreateKeyTrees = false
24 vimfx.createKeyTrees()
30 messageManager.send('loadConfig', null, callback)
32 loadFile = (dir, file, scope) ->
33 expandedDir = utils.expandPath(dir)
34 uri = OS.Path.toFileURI(OS.Path.join(expandedDir, file))
36 Services.scriptloader.loadSubScriptWithOptions(uri, {
37 target: Object.assign({
38 __dirname: OS.Path.toFileURI(expandedDir)
45 console.error("VimFx: Error loading #{file}", uri, error)