diff --git a/src/vs/workbench/contrib/search/browser/searchModel.ts b/src/vs/workbench/contrib/search/browser/searchModel.ts index 0c539b4a8aa..d1bc21ff6b0 100644 --- a/src/vs/workbench/contrib/search/browser/searchModel.ts +++ b/src/vs/workbench/contrib/search/browser/searchModel.ts @@ -2024,7 +2024,13 @@ export class SearchModel extends Disposable { tokenSource.dispose(); const searchLength = Date.now() - searchStart; this.logService.trace(`whole search time | ${searchLength}ms`); - return notebookResult ? { ...currentResult, ...notebookResult.completeData } : currentResult; + return { + results: currentResult.results.concat(notebookResult.completeData.results), + messages: currentResult.messages.concat(notebookResult.completeData.messages), + limitHit: currentResult.limitHit || notebookResult.completeData.limitHit, + exit: currentResult.exit, + stats: currentResult.stats, + }; } async search(query: ITextQuery, onProgress?: (result: ISearchProgressItem) => void): Promise { diff --git a/src/vs/workbench/contrib/search/test/browser/searchModel.test.ts b/src/vs/workbench/contrib/search/test/browser/searchModel.test.ts index 6a561cb325e..0adcb1e47d4 100644 --- a/src/vs/workbench/contrib/search/test/browser/searchModel.test.ts +++ b/src/vs/workbench/contrib/search/test/browser/searchModel.test.ts @@ -190,7 +190,7 @@ suite('SearchModel', () => { new TextSearchMatch('preview 1', new OneLineRange(1, 1, 4)), new TextSearchMatch('preview 1', new OneLineRange(1, 4, 11))), aRawMatch('/2', new TextSearchMatch('preview 2', lineOneRange))]; - instantiationService.stub(ISearchService, searchServiceWithResults(results)); + instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results })); instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject: SearchModel = instantiationService.createInstance(SearchModel); @@ -223,7 +223,7 @@ suite('SearchModel', () => { new TextSearchMatch('test', new OneLineRange(1, 1, 5)), new TextSearchMatch('this is a test', new OneLineRange(1, 11, 15))), aRawMatch('/3', new TextSearchMatch('test', lineOneRange))]; - const searchService = instantiationService.stub(ISearchService, searchServiceWithResults(results)); + const searchService = instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results })); sinon.stub(CellMatch.prototype, 'addContext'); const textSearch = sinon.spy(searchService, 'textSearch'); @@ -347,7 +347,7 @@ suite('SearchModel', () => { new TextSearchMatch('preview 1', new OneLineRange(1, 4, 11))), aRawMatch('/2', new TextSearchMatch('preview 2', lineOneRange))]; - instantiationService.stub(ISearchService, searchServiceWithResults(results)); + instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results })); instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject: SearchModel = instantiationService.createInstance(SearchModel); @@ -364,7 +364,7 @@ suite('SearchModel', () => { const target1 = sinon.stub().returns(nullEvent); instantiationService.stub(ITelemetryService, 'publicLog', target1); - instantiationService.stub(ISearchService, searchServiceWithResults([])); + instantiationService.stub(ISearchService, searchServiceWithResults([], { limitHit: false, messages: [], results: [] })); instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject = instantiationService.createInstance(SearchModel); @@ -453,7 +453,7 @@ suite('SearchModel', () => { new TextSearchMatch('preview 1', new OneLineRange(1, 4, 11))), aRawMatch('/2', new TextSearchMatch('preview 2', lineOneRange))]; - instantiationService.stub(ISearchService, searchServiceWithResults(results)); + instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results: [] })); instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject: SearchModel = instantiationService.createInstance(SearchModel); await testObject.search({ contentPattern: { pattern: 'somestring' }, type: QueryType.Text, folderQueries }); @@ -483,7 +483,7 @@ suite('SearchModel', () => { aRawMatch('/1', new TextSearchMatch('preview 1', new OneLineRange(1, 1, 4)), new TextSearchMatch('preview 1', new OneLineRange(1, 4, 11)))]; - instantiationService.stub(ISearchService, searchServiceWithResults(results)); + instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results })); instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject: SearchModel = instantiationService.createInstance(SearchModel);