1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-03-13 04:15:47 +01:00

Fix finder.

--HG--
branch : key-processing
This commit is contained in:
Kris Maglione
2011-01-26 03:02:05 -05:00
parent c284e1ced8
commit 7bf57e2355
4 changed files with 26 additions and 27 deletions

View File

@@ -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) {