Merge pull request #1368 from ajaxorg/multiselect_paste
Fix multiselect copy and paste
This commit is contained in:
commit
ef2b2bd1be
3 changed files with 17 additions and 7 deletions
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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--; ) {
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue