[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 []; if (!session || !options.needle) return [];
var search = new Search(); var search = new Search();
search.set(options); search.set(options);
var ranges = search.findAll(session); return search.findAll(session).reduce(function(lines, range) {
return ranges.map(function(range) { var row = range.start.row,
var row = range.start.row; last = lines[lines.length-1];
return {row: row, content: session.getLine(row)}; return last && last.row === row ?
}); lines :
lines.concat({row: row, content: session.getLine(row)});
}, []);
} }
}).call(Occur.prototype); }).call(Occur.prototype);

View file

@ -55,9 +55,9 @@ module.exports = {
}, },
"test: find lines matching" : function() { "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'}), 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); assert.deepEqual(result, expected);
}, },