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) {
|
||||
var len = re.length;
|
||||
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++)
|
||||
if (lines[row + j].search(re[j]) == -1)
|
||||
break;
|
||||
continue outer;
|
||||
|
||||
var startLine = lines[row];
|
||||
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;
|
||||
|
||||
ranges.push(new Range(
|
||||
row, startLine.length - startIndex,
|
||||
row + len - 1, endIndex
|
||||
|
||||
if (prevRange && prevRange.end.row === row &&
|
||||
prevRange.end.column > startIndex
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
ranges.push(prevRange = new Range(
|
||||
row, startIndex, row + len - 1, endIndex
|
||||
));
|
||||
if (len > 2)
|
||||
row = row + len - 2;
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < lines.length; i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue