using moveCursorTo in search.js isn't safe (triggers events)
This commit is contained in:
parent
18f5ca584f
commit
245b27a4f7
1 changed files with 12 additions and 14 deletions
|
|
@ -89,29 +89,27 @@ Search.SELECTION = 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.findAll = function(session) {
|
this.findAll = function(session) {
|
||||||
if (!this.$options.needle)
|
var options = this.$options;
|
||||||
|
if (!options.needle)
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
if (this.$options.backwards) {
|
if (options.backwards) {
|
||||||
var iterator = this.$backwardMatchIterator(session);
|
var iterator = this.$backwardMatchIterator(session);
|
||||||
} else {
|
} else {
|
||||||
iterator = this.$forwardMatchIterator(session);
|
iterator = this.$forwardMatchIterator(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
var ignoreCursorColumn = this.$options.wrap && this.$options.scope == Search.ALL;
|
var ignoreCursor = !options.start && options.wrap && options.scope == Search.ALL;
|
||||||
var start = session.getSelection().getCursor();
|
if (ignoreCursor)
|
||||||
if (ignoreCursorColumn) {
|
options.start = {row: 0, column: 0};
|
||||||
session.getSelection().moveCursorTo(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
var ranges = [];
|
var ranges = [];
|
||||||
iterator.forEach(function(range) {
|
iterator.forEach(function(range) {
|
||||||
ranges.push(range);
|
ranges.push(range);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (ignoreCursorColumn) {
|
if (ignoreCursor)
|
||||||
session.getSelection().moveCursorTo(start.row, start.column)
|
options.start = null;
|
||||||
}
|
|
||||||
|
|
||||||
return ranges;
|
return ranges;
|
||||||
};
|
};
|
||||||
|
|
@ -223,8 +221,8 @@ Search.SELECTION = 2;
|
||||||
this.$forwardLineIterator = function(session) {
|
this.$forwardLineIterator = function(session) {
|
||||||
var searchSelection = this.$options.scope == Search.SELECTION;
|
var searchSelection = this.$options.scope == Search.SELECTION;
|
||||||
|
|
||||||
var range = session.getSelection().getRange();
|
var range = this.$options.range || session.getSelection().getRange();
|
||||||
var start = session.getSelection().getCursor();
|
var start = this.$options.start || session.getSelection().getCursor();
|
||||||
|
|
||||||
var firstRow = searchSelection ? range.start.row : 0;
|
var firstRow = searchSelection ? range.start.row : 0;
|
||||||
var firstColumn = searchSelection ? range.start.column : 0;
|
var firstColumn = searchSelection ? range.start.column : 0;
|
||||||
|
|
@ -285,8 +283,8 @@ Search.SELECTION = 2;
|
||||||
this.$backwardLineIterator = function(session) {
|
this.$backwardLineIterator = function(session) {
|
||||||
var searchSelection = this.$options.scope == Search.SELECTION;
|
var searchSelection = this.$options.scope == Search.SELECTION;
|
||||||
|
|
||||||
var range = session.getSelection().getRange();
|
var range = this.$options.range || session.getSelection().getRange();
|
||||||
var start = searchSelection ? range.end : range.start;
|
var start = this.$options.start || session.getSelection().getCursor();
|
||||||
|
|
||||||
var firstRow = searchSelection ? range.start.row : 0;
|
var firstRow = searchSelection ? range.start.row : 0;
|
||||||
var firstColumn = searchSelection ? range.start.column : 0;
|
var firstColumn = searchSelection ? range.start.column : 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue