X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fmodules%2Fcontexts.jsm;h=ffada2b7635446021f543c06cdc5c2a6e8165f7b;hb=3d837eb266a3a01d424192aa4ec1a167366178c5;hp=6d32fb8358074121eb8a7af5e77263e05f19d8a8;hpb=5ebd29f56d17f62011cdd596b1d351947ee534ff;p=dactyl.git diff --git a/common/modules/contexts.jsm b/common/modules/contexts.jsm index 6d32fb8..ffada2b 100644 --- a/common/modules/contexts.jsm +++ b/common/modules/contexts.jsm @@ -1,23 +1,24 @@ -// Copyright (c) 2010-2011 by Kris Maglione +// Copyright (c) 2010-2012 Kris Maglione // // This work is licensed for reuse under an MIT license. Details are // given in the LICENSE.txt file included with this file. -/* use strict */ +"use strict"; -Components.utils.import("resource://dactyl/bootstrap.jsm"); defineModule("contexts", { exports: ["Contexts", "Group", "contexts"], require: ["services", "util"] -}, this); +}); -this.lazyRequire("overlay", ["overlay"]); +lazyRequire("commands", ["ArgType", "CommandOption", "commands"]); +lazyRequire("options", ["Option"]); +lazyRequire("overlay", ["overlay"]); +lazyRequire("storage", ["File"]); +lazyRequire("template", ["template"]); var Const = function Const(val) Class.Property({ enumerable: true, value: val }); var Group = Class("Group", { init: function init(name, description, filter, persist) { - const self = this; - this.name = name; this.description = description; this.filter = filter || this.constructor.defaultFilter; @@ -64,7 +65,7 @@ var Group = Class("Group", { get builtin() this.modules.contexts.builtinGroups.indexOf(this) >= 0, }, { - compileFilter: function (patterns, default_) { + compileFilter: function (patterns, default_ = false) { if (arguments.length < 2) default_ = false; @@ -75,10 +76,11 @@ var Group = Class("Group", { return update(siteFilter, { toString: function () this.filters.join(","), - toXML: function (modules) let (uri = modules && modules.buffer.uri) + toJSONXML: function (modules) let (uri = modules && modules.buffer.uri) template.map(this.filters, - function (f) {f}, - <>,), + function (f) ["span", { highlight: uri && f(uri) ? "Filter" : "" }, + "toJSONXML" in f ? f.toJSONXML() : String(f)], + ","), filters: Option.parse.sitelist(patterns) }); @@ -167,13 +169,12 @@ var Contexts = Module("contexts", { Hives: Class("Hives", Class.Property, { init: function init(name, constructor) { const { contexts } = modules; - const self = this; if (this.Hive) return { enumerable: true, - get: function () array(contexts.groups[self.name]) + get: () => array(contexts.groups[this.name]) }; this.Hive = constructor; @@ -374,7 +375,7 @@ var Contexts = Module("contexts", { return { __proto__: frame, filename: this.context.file[0] == "[" ? this.context.file - : services.io.newFileURI(File(this.context.file)).spec, + : File(this.context.file).URI.spec, lineNumber: this.context.line }; return frame; @@ -480,10 +481,12 @@ var Contexts = Module("contexts", { getDocs: function getDocs(context) { try { if (isinstance(context, ["Sandbox"])) { - let info = "INFO" in context && Cu.evalInSandbox("this.INFO instanceof XML && INFO.toXMLString()", context); - return info && XML(info); + let info = "INFO" in context && Cu.evalInSandbox("this.INFO instanceof XML ? INFO.toXMLString() : this.INFO", context); + return /^{g.filter.toXML ? g.filter.toXML(modules) + <>  : ""}{g.description || ""} + description: function (g) ["", g.filter.toJSONXML ? g.filter.toJSONXML(modules).concat("\u00a0") : "", g.description || ""] }; context.completions = (active === undefined ? contexts.groupList : contexts.initializedGroups(active)) .slice(0, -1); @@ -813,4 +816,4 @@ endModule(); // catch(e){ if (!e.stack) e = Error(e); dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack); } -// vim: set fdm=marker sw=4 ts=4 et ft=javascript: +// vim: set fdm=marker sw=4 sts=4 ts=8 et ft=javascript: