[occur] fixing occur lines

This commit is contained in:
Robert Krahn 2013-03-17 02:39:00 -07:00
commit 8102b6579f
2 changed files with 9 additions and 7 deletions

View file

@ -82,11 +82,13 @@ oop.inherits(Occur, Search);
if (!session || !options.needle) return [];
var search = new Search();
search.set(options);
var ranges = search.findAll(session);
return ranges.map(function(range) {
var row = range.start.row;
return {row: row, content: session.getLine(row)};
});
return search.findAll(session).reduce(function(lines, range) {
var row = range.start.row,
last = lines[lines.length-1];
return last && last.row === row ?
lines :
lines.concat({row: row, content: session.getLine(row)});
}, []);
}
}).call(Occur.prototype);

View file

@ -55,9 +55,9 @@ module.exports = {
},
"test: find lines matching" : function() {
session.doc.insertLines(0, ['abc', 'def', 'xyz', 'bcx']);
session.doc.insertLines(0, ['abc', 'def', 'xyz', 'bcxbc']);
var result = occur.matchingLines(session, {needle: 'bc'}),
expected = [{row: 0, content: 'abc'}, {row: 3, content: 'bcx'}];
expected = [{row: 0, content: 'abc'}, {row: 3, content: 'bcxbc'}];
assert.deepEqual(result, expected);
},