]> git.gir.st - VimFx.git/blob - extension/includes/console.coffee
Key handling bug fixing
[VimFx.git] / extension / includes / console.coffee
1 console = do ->
2 cs = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService)
3
4 stringify = (arg) ->
5 try
6 return String(arg)
7 catch error
8 return "<toString() error>"
9
10 message = (level, args) ->
11 str = "VimFx - #{ level }: #{ Array.map(args, stringify).join(" ") }\n"
12 dump str
13 cs.logStringMessage str
14
15 expand = (arg) ->
16 if typeof(arg) == 'object'
17 str = stringify(arg)
18 for key, value of arg
19 str += "\n-\t#{ key }: #{ value }"
20
21 return str
22 else
23 return arg
24
25 stacktrace = ->
26 st2 = (f) ->
27 if f
28 name = f.toString().split('(')[0]
29 args = Array.map(f.arguments, stringify).join(", ")
30 return st2(f.caller)
31 .concat(["#{ name } ( #{ args } )"])
32 else
33 []
34 return st2(arguments.callee.caller);
35
36
37 return {
38 log: -> message 'log', arguments
39 info: -> message 'info', arguments
40 error: -> message 'error', arguments
41 warning: -> message 'warning', arguments
42 expand: -> message 'expand', Array.map(arguments, expand)
43 stacktrace: -> message 'stacktrace', stacktrace()
44 }
Imprint / Impressum