@@ -388,23 +388,43 @@ alias ${alias}`,
388388 return
389389 }
390390
391- const text = await vscode . window . showInformationMessage (
392- vscode . l10n . t ( 'Are you sure to delete all aliases?' ) ,
393- { modal : true } ,
394- vscode . l10n . t ( 'Confirm' ) ,
391+ const selectedAliases = await vscode . window . showQuickPick (
392+ aliases . map ( ( alias ) => alias . aliasName ) ,
393+ {
394+ placeHolder : vscode . l10n . t ( 'Please choose the aliases you want to delete' ) ,
395+ canPickMany : true ,
396+ } ,
395397 )
396- // click cancel button
397- if ( text === undefined ) {
398+
399+ // cancel pick group
400+ if ( selectedAliases === undefined || ! selectedAliases . length ) {
398401 return
399402 }
400403
401- executeCommandInTerminal ( formatUnaliasCommand ( aliases ) )
404+ if ( selectedAliases . length === aliases . length ) {
405+ const text = await vscode . window . showInformationMessage (
406+ vscode . l10n . t ( 'Are you sure to delete all aliases?' ) ,
407+ { modal : true } ,
408+ vscode . l10n . t ( 'Confirm' ) ,
409+ )
410+ // click cancel button
411+ if ( text === undefined ) {
412+ return
413+ }
414+ }
415+
416+ const needDeleteAliases = aliases . filter ( ( alias ) => selectedAliases . includes ( alias . aliasName ) )
402417
403- deleteAliases ( storePath . path )
418+ executeCommandInTerminal ( formatUnaliasCommand ( needDeleteAliases ) )
404419
405- // remove all aliases under every groups
420+ deleteAliases ( storePath . path , needDeleteAliases )
421+
422+ // remove aliases under every groups
406423 for ( const groupName of this . globalState . keys ( ) ) {
407- this . globalState . update ( groupName , [ ] )
424+ const aliases = normalizeAliasesToArray < Alias > ( this . globalState . get ( groupName ) ) . filter ( ( aliasItem ) => {
425+ return ! needDeleteAliases . some ( ( alias ) => isSameAlias ( alias , aliasItem ) )
426+ } )
427+ this . globalState . update ( groupName , aliases )
408428 }
409429
410430 this . refresh ( )
0 commit comments