diff --git a/common/content/commandline.js b/common/content/commandline.js index c78dd142..77a11e4d 100644 --- a/common/content/commandline.js +++ b/common/content/commandline.js @@ -381,7 +381,6 @@ var CommandMode = Class("CommandMode", { } }, - autocomplete: false, keepCommand: false, onKeyPress: function onKeyPress(event) { @@ -392,9 +391,6 @@ var CommandMode = Class("CommandMode", { return true; /* Pass event */ }, - complete: function (context) { - }, - onCancel: function (value) { }, diff --git a/common/modules/base.jsm b/common/modules/base.jsm index c6f4338d..1de0923f 100644 --- a/common/modules/base.jsm +++ b/common/modules/base.jsm @@ -818,7 +818,7 @@ memoize(Class.prototype, "closure", function () { iter(properties(this), properties(this, true)).forEach(function (k) { if (!this.__lookupGetter__(k) && callable(this[k])) closure[k] = closure(this[k]); - else if (!(k in closure || k in Object.prototype)) + else if (!(k in closure)) Object.defineProperty(closure, k, { get: function get_proxy() self[k], set: function set_proxy(val) self[k] = val, diff --git a/common/modules/finder.jsm b/common/modules/finder.jsm index 0707b854..80525f53 100644 --- a/common/modules/finder.jsm +++ b/common/modules/finder.jsm @@ -22,19 +22,18 @@ var RangeFinder = Module("rangefinder", { get commandline() this.modules.commandline, get modes() this.modules.modes, - get options() this.modules.options(), + get options() this.modules.options, get rangeFind() modules.buffer.localStore.rangeFind, set rangeFind(val) modules.buffer.localStore.rangeFind = val }), openPrompt: function (mode) { - let backwards = mode == this.modes.FIND_BACKWARD; - this.CommandMode(mode).open(backwards ? "?" : "/"); + this.CommandMode(mode).open(); if (this.rangeFind && this.rangeFind.window.get() === this.window) this.rangeFind.reset(); - this.find("", backwards); + this.find("", mode === this.modes.FIND_BACKWARD); }, bootstrap: function (str, backward) { @@ -121,8 +120,12 @@ var RangeFinder = Module("rangefinder", { this.rangeFind.focus(); }, - // Called when the user types a key in the find dialog. Triggers a find attempt if 'incfind' is set - onKeyPress: function (command) { + onCancel: function () { + if (this.rangeFind) + this.rangeFind.cancel(); + }, + + onChange: function (command) { if (this.options["incfind"]) { command = this.bootstrap(command); this.rangeFind.find(command); @@ -140,13 +143,6 @@ var RangeFinder = Module("rangefinder", { this.rangeFind.focus(); }, - // Called when the find is canceled - for example if someone presses - // escape while typing a find - onCancel: function () { - if (this.rangeFind) - this.rangeFind.cancel(); - }, - /** * Highlights all occurrences of the last sought for string in the * current buffer. @@ -165,12 +161,12 @@ var RangeFinder = Module("rangefinder", { } }, { }, { - /* Must come before commandline. */ modes: function (dactyl, modules, window) { - const { modes } = modules; + const { commandline, modes } = modules; modes.addMode("FIND", { extended: true, description: "Find mode, active when typing search input", + bases: [modes.COMMAND_LINE], input: true }); modes.addMode("FIND_FORWARD", { @@ -194,14 +190,19 @@ var RangeFinder = Module("rangefinder", { { argCount: "0" }); }, commandline: function (dactyl, modules, window) { - this.CommandMode = modules.CommandMode("CommandFindMode", { + this.CommandMode = Class("CommandFindMode", modules.CommandMode, { init: function init(mode) { this.mode = mode; + init.supercall(this); }, + historyKey: "find", - onCancel: rangefinder.closure.onCancel, - onChange: rangefinder.closure.onKeyPress, - onSubmit: rangefinder.closure.onSubmit + + get prompt() this.mode === modules.modes.FIND_BACKWARD ? "?" : "/", + + onCancel: this.closure.onCancel, + onChange: this.closure.onChange, + onSubmit: this.closure.onSubmit }); }, mappings: function (dactyl, modules, window) { diff --git a/common/modules/overlay.jsm b/common/modules/overlay.jsm index 66e8878a..c456b8a8 100644 --- a/common/modules/overlay.jsm +++ b/common/modules/overlay.jsm @@ -204,12 +204,14 @@ var Overlay = Module("Overlay", { modules.loaded = loaded; function init(module) { + let name = module.constructor.className; + function init(func, mod) function () defineModule.time(module.className || module.constructor.className, mod, - func, module, + func, modules[name], modules.dactyl, modules, window); - set.add(loaded, module.constructor.className); + set.add(loaded, name); for (let [mod, func] in Iterator(module.INIT)) { if (mod in loaded) init(func, mod)(); @@ -241,7 +243,7 @@ var Overlay = Module("Overlay", { defineModule.loadLog.push("Load" + (isString(prereq) ? " " + prereq + " dependency: " : ": ") + module.className); if (frame && frame.filename) - defineModule.loadLog.push(" from: " + frame.filename + ":" + frame.lineNumber); + defineModule.loadLog.push(" from: " + frame.filename.replace(/.* -> /, "") + ":" + frame.lineNumber); delete modules[module.className]; modules[module.className] = defineModule.time(module.className, "init", module);