fix findall
This commit is contained in:
parent
0c03302a6d
commit
7a92c174eb
1 changed files with 14 additions and 7 deletions
|
|
@ -143,20 +143,27 @@ var Search = function() {
|
||||||
if (options.$isMultiLine) {
|
if (options.$isMultiLine) {
|
||||||
var len = re.length;
|
var len = re.length;
|
||||||
var maxRow = lines.length - len;
|
var maxRow = lines.length - len;
|
||||||
for (var row = re.offset || 0; row <= maxRow; row++) {
|
var prevRange;
|
||||||
|
outer: for (var row = re.offset || 0; row <= maxRow; row++) {
|
||||||
for (var j = 0; j < len; j++)
|
for (var j = 0; j < len; j++)
|
||||||
if (lines[row + j].search(re[j]) == -1)
|
if (lines[row + j].search(re[j]) == -1)
|
||||||
break;
|
continue outer;
|
||||||
|
|
||||||
var startLine = lines[row];
|
var startLine = lines[row];
|
||||||
var line = lines[row + len - 1];
|
var line = lines[row + len - 1];
|
||||||
var startIndex = startLine.match(re[0])[0].length;
|
var startIndex = startLine.length - startLine.match(re[0])[0].length;
|
||||||
var endIndex = line.match(re[len - 1])[0].length;
|
var endIndex = line.match(re[len - 1])[0].length;
|
||||||
|
|
||||||
ranges.push(new Range(
|
if (prevRange && prevRange.end.row === row &&
|
||||||
row, startLine.length - startIndex,
|
prevRange.end.column > startIndex
|
||||||
row + len - 1, endIndex
|
) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ranges.push(prevRange = new Range(
|
||||||
|
row, startIndex, row + len - 1, endIndex
|
||||||
));
|
));
|
||||||
|
if (len > 2)
|
||||||
|
row = row + len - 2;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < lines.length; i++) {
|
for (var i = 0; i < lines.length; i++) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue