]> git.gir.st - VimFx.git/blob - bootstrap.coffee
Hint markers fixed: backspacing works fine now, markers are also properly hid when...
[VimFx.git] / bootstrap.coffee
1 "use strict"
2
3 { classes: Cc, interfaces: Ci, utils: Cu } = Components
4
5 # Populate the global namespace with console, require, and include
6 do (global = this) ->
7 tools = {}
8 Cu.import "resource://gre/modules/Services.jsm", tools
9 baseURI = tools.Services.io.newURI __SCRIPT_URI_SPEC__, null, null
10
11 include = (src, scope = {}) ->
12 try
13 uri = tools.Services.io.newURI "packages/#{ src }.js", null, baseURI
14 tools.Services.scriptloader.loadSubScript uri.spec, scope
15 catch error
16 uri = tools.Services.io.newURI src, null, baseURI
17 tools.Services.scriptloader.loadSubScript uri.spec, scope
18
19 return scope
20
21
22 modules = {}
23 require = (src) ->
24 if modules[src]
25 return modules[src]
26 else
27 scope =
28 require: require
29 include: include
30 exports: {}
31
32 include src, scope
33
34 return modules[src] = scope.exports;
35
36 Console = require("console").Console
37 global.console = new Console "vimff"
38 global.include = include
39 global.require = require
40
41 { loadCss, unloadCss } = require 'utils'
42 { createWindowEventTracker } = require 'event-handlers'
43
44 tracker = createWindowEventTracker()
45
46 # Firefox will call this method on startup/enabling
47 startup = (data, reason) ->
48 loadCss 'vimff'
49 tracker.start()
50
51 # Firefox will call this method on shutdown/disabling
52 shutdown = (data, reason) ->
53 tracker.stop()
54 unloadCss 'vimff'
Imprint / Impressum