-// Copyright (c) 2008-2013 Kris Maglione <maglione.k at Gmail>
+// Copyright (c) 2008-2014 Kris Maglione <maglione.k at Gmail>
// Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
//
// This work is licensed for reuse under an MIT license. Details are
}, this);
},
- defaultRegister: "*",
+ defaultRegister: "*+",
selectionRegisters: {
"*": "selection",
if (name == null)
name = editor.currentRegister || editor.defaultRegister;
+ name = String(name)[0];
if (name == '"')
name = 0;
if (name == "_")
var res = null;
- else if (Set.has(this.selectionRegisters, name))
+ else if (hasOwnProperty(this.selectionRegisters, name))
res = { text: dactyl.clipboardRead(this.selectionRegisters[name]) || "" };
else if (!/^[0-9]$/.test(name))
res = this.registers.get(name);
value = DOM.stringify(value);
value = { text: value, isLine: modes.extended & modes.LINE, timestamp: Date.now() * 1000 };
- if (name == '"')
- name = 0;
- if (name == "_")
- ;
- else if (Set.has(this.selectionRegisters, name))
- dactyl.clipboardWrite(value.text, verbose, this.selectionRegisters[name]);
- else if (!/^[0-9]$/.test(name))
- this.registers.set(name, value);
- else {
- this.registerRing.insert(value, name);
- this.registerRing.truncate(10);
+ for (let n of String(name)) {
+ if (n == '"')
+ n = 0;
+ if (n == "_")
+ ;
+ else if (hasOwnProperty(this.selectionRegisters, n))
+ dactyl.clipboardWrite(value.text, verbose, this.selectionRegisters[n]);
+ else if (!/^[0-9]$/.test(n))
+ this.registers.set(n, value);
+ else {
+ this.registerRing.insert(value, n);
+ this.registerRing.truncate(10);
+ }
}
},
let keepFocus = modes.stack.some(m => isinstance(m.main, modes.COMMAND_LINE));
if (!forceEditing && textBox && textBox.type == "password") {
- commandline.input(_("editor.prompt.editPassword") + " ",
- function (resp) {
+ commandline.input(_("editor.prompt.editPassword") + " ")
+ .then(function (resp) {
if (resp && resp.match(/^y(es)?$/i))
editor.editFieldExternally(true);
});
column = 1 + pre.replace(/[^]*\n/, "").length;
let origGroup = DOM(textBox).highlight.toString();
- let cleanup = util.yieldable(function cleanup(error) {
+ let cleanup = promises.task(function cleanup(error) {
if (timer)
timer.cancel();
DOM(textBox).highlight.remove("EditorEditing");
if (!keepFocus)
dactyl.focus(textBox);
+
for (let group in values(blink.concat(blink, ""))) {
highlight.highlightNode(textBox, origGroup + " " + group);
- yield 100;
+
+ yield promises.sleep(100);
}
}
});
completion: function initCompletion() {
completion.register = function complete_register(context) {
context = context.fork("registers");
- context.keys = { text: util.identity, description: editor.closure.getRegister };
+ context.keys = { text: util.identity, description: editor.bound.getRegister };
- context.match = function (r) !this.filter || ~this.filter.indexOf(r);
+ context.match = function (r) !this.filter || this.filter.contains(r);
context.fork("clipboard", 0, this, function (ctxt) {
ctxt.match = context.match;
args.push(obj["file"]);
return args;
},
- has: function (key) Set.has(util.compileMacro(this.value).seen, key),
+ has: function (key) util.compileMacro(this.value).seen.has(key),
validator: function (value) {
this.format({}, value);
- return Object.keys(util.compileMacro(value).seen)
- .every(k => ["column", "file", "line"].indexOf(k) >= 0);
+ let allowed = RealSet(["column", "file", "line"]);
+ return [k for (k of util.compileMacro(value).seen)]
+ .every(k => allowed.has(k));
}
});