convert paste into command

This commit is contained in:
nightwing 2015-05-22 22:14:15 +04:00
commit 386c508042
2 changed files with 19 additions and 6 deletions

View file

@ -423,6 +423,12 @@ exports.commands = [{
exec: function() {}, exec: function() {},
passEvent: true, passEvent: true,
readOnly: true readOnly: true
}, {
name: "copy",
exec: function(editor) {
// placeholder for replay macro
},
readOnly: true
}, },
// commands disabled in readOnly mode // commands disabled in readOnly mode
@ -439,6 +445,12 @@ exports.commands = [{
}, },
scrollIntoView: "cursor", scrollIntoView: "cursor",
multiSelectAction: "forEach" multiSelectAction: "forEach"
}, {
name: "paste",
exec: function(editor, args) {
editor.$handlePaste(args);
},
scrollIntoView: "cursor"
}, { }, {
name: "removeline", name: "removeline",
bindKey: bindKey("Ctrl-D", "Command-D"), bindKey: bindKey("Ctrl-D", "Command-D"),

View file

@ -916,13 +916,15 @@ var Editor = function(renderer, session) {
* *
**/ **/
this.onPaste = function(text, event) { this.onPaste = function(text, event) {
// todo this should change when paste becomes a command
if (this.$readOnly)
return;
var e = {text: text, event: event}; var e = {text: text, event: event};
this.commands.exec("paste", this, e);
};
this.$handlePaste = function(e) {
if (typeof e == "string")
e = {text: e};
this._signal("paste", e); this._signal("paste", e);
text = e.text; var text = e.text;
if (!this.inMultiSelectMode || this.inVirtualSelectionMode) { if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {
this.insert(text); this.insert(text);
} else { } else {
@ -940,7 +942,6 @@ var Editor = function(renderer, session) {
this.session.insert(range.start, lines[i]); this.session.insert(range.start, lines[i]);
} }
} }
this.renderer.scrollCursorIntoView();
}; };
this.execCommand = function(command, args) { this.execCommand = function(command, args) {