11import {
2+ ProgressLocation ,
23 QuickPickItem ,
34 TreeView ,
45 TreeViewExpansionEvent ,
@@ -13,7 +14,10 @@ import {
1314 getOwnerFromGitHubUrl ,
1415 isValidGitHubOwner ,
1516} from "../../common/github-url-identifier-helper" ;
16- import { showAndLogErrorMessage } from "../../helpers" ;
17+ import {
18+ showAndLogErrorMessage ,
19+ showAndLogInformationMessage ,
20+ } from "../../helpers" ;
1721import { DisposableObject } from "../../pure/disposable-object" ;
1822import {
1923 DbItem ,
@@ -343,6 +347,8 @@ export class DbPanel extends DisposableObject {
343347 throw new Error ( "Please select a valid list to add code search results." ) ;
344348 }
345349
350+ const listName = treeViewItem . dbItem . listName ;
351+
346352 const languageQuickPickItems : CodeSearchQuickPickItem [ ] = Object . values (
347353 QueryLanguage ,
348354 ) . map ( ( language ) => ( {
@@ -375,18 +381,33 @@ export class DbPanel extends DisposableObject {
375381 return ;
376382 }
377383
378- const repositories = await getCodeSearchRepositories (
379- this . app . credentials ,
380- `${ codeSearchQuery } language:${ codeSearchLanguage . language } ` ,
381- ) ;
384+ void window . withProgress (
385+ {
386+ location : ProgressLocation . Notification ,
387+ title : "Searching for repositories... This might take a while" ,
388+ cancellable : true ,
389+ } ,
390+ async ( progress , token ) => {
391+ progress . report ( { increment : 10 } ) ;
392+
393+ const repositories = await getCodeSearchRepositories (
394+ this . app . credentials ,
395+ `${ codeSearchQuery } language:${ codeSearchLanguage . language } ` ,
396+ progress ,
397+ token ,
398+ ) ;
382399
383- const truncatedRepositories = await this . dbManager . addNewRemoteReposToList (
384- repositories ,
385- treeViewItem . dbItem . listName ,
386- ) ;
387- this . truncatedReposNote (
388- truncatedRepositories ,
389- treeViewItem . dbItem . listName ,
400+ token . onCancellationRequested ( ( ) => {
401+ void showAndLogInformationMessage ( "Code search cancelled" ) ;
402+ return ;
403+ } ) ;
404+
405+ progress . report ( { increment : 10 , message : "Processing results..." } ) ;
406+
407+ const truncatedRepositories =
408+ await this . dbManager . addNewRemoteReposToList ( repositories , listName ) ;
409+ this . truncatedReposNote ( truncatedRepositories , listName ) ;
410+ } ,
390411 ) ;
391412 }
392413
0 commit comments