Merge pull request #1368 from ajaxorg/multiselect_paste

Fix multiselect copy and paste
This commit is contained in:
Ruben Daniels 2013-04-18 08:47:19 -07:00
commit ef2b2bd1be
3 changed files with 17 additions and 7 deletions

View file

@ -322,6 +322,8 @@ function calcDistance(ax, ay, bx, by) {
function calcRangeOrientation(range, cursor) {
if (range.start.row == range.end.row)
var cmp = 2 * cursor.column - range.start.column - range.end.column;
else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)
var cmp = cursor.column - 4;
else
var cmp = 2 * cursor.row - range.start.row - range.end.row;

View file

@ -515,11 +515,14 @@ var Editor = require("./editor").Editor;
var text = "";
if (this.inMultiSelectMode) {
var ranges = this.multiSelect.rangeList.ranges;
text = [];
var buf = [];
for (var i = 0; i < ranges.length; i++) {
text.push(this.session.getTextRange(ranges[i]));
buf.push(this.session.getTextRange(ranges[i]));
}
text = text.join(this.session.getDocument().getNewLineCharacter());
var nl = this.session.getDocument().getNewLineCharacter();
text = buf.join(nl);
if (text.length == (buf.length - 1) * nl.length)
text = "";
} else if (!this.selection.isEmpty()) {
text = this.session.getTextRange(this.getSelectionRange());
}
@ -539,7 +542,7 @@ var Editor = require("./editor").Editor;
var lines = text.split(/\r\n|\r|\n/);
var ranges = this.selection.rangeList.ranges;
if (lines.length > ranges.length || (lines.length <= 2 || !lines[1]))
if (lines.length > ranges.length || (lines.length <= 2 && !lines[1]))
return this.commands.exec("insertstring", this, text);
for (var i = ranges.length; i--; ) {

View file

@ -47,7 +47,7 @@
}
.ace-eclipse .ace_comment {
color: rgb(63, 127, 95);
color: rgb(113, 150, 130);
}
.ace-eclipse .ace_comment.ace_doc {
@ -59,10 +59,11 @@
}
.ace-eclipse .ace_constant.ace_numeric {
color: darkblue;
}
.ace-eclipse .ace_tag {
color: rgb(63, 127, 127);
color: rgb(25, 118, 116);
}
.ace-eclipse .ace_type {
@ -83,7 +84,11 @@
}
.ace-eclipse .ace_meta.ace_tag {
color:rgb(63, 127, 127);
color:rgb(25, 118, 116);
}
.ace-eclipse .ace_invisible {
color: #ddd;
}
.ace-eclipse .ace_entity.ace_other.ace_attribute-name {