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) { function calcRangeOrientation(range, cursor) {
if (range.start.row == range.end.row) if (range.start.row == range.end.row)
var cmp = 2 * cursor.column - range.start.column - range.end.column; 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 else
var cmp = 2 * cursor.row - range.start.row - range.end.row; var cmp = 2 * cursor.row - range.start.row - range.end.row;

View file

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

View file

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