@@ -666,6 +666,34 @@ export class AmazonQPromptSettings
666666 }
667667}
668668
669+ function isPromptEnabled <
670+ S extends {
671+ _getOrThrow ( key : P & string , defaultValue : boolean ) : boolean
672+ _log ( message : string , ...args : any [ ] ) : void
673+ update ( key : P & string , value : boolean ) : Promise < boolean >
674+ reset ( ) : Promise < void >
675+ } & PromptSettings ,
676+ P extends AllPromptNames ,
677+ > ( settings : S , promptName : P ) {
678+ try {
679+ return ! settings . _getOrThrow ( promptName , false )
680+ } catch ( e ) {
681+ settings . _log ( 'prompt check for "%s" failed: %s' , promptName , ( e as Error ) . message )
682+ settings . reset ( ) . catch ( ( e ) => getLogger ( ) . error ( `failed to reset prompt settings: %O` , ( e as Error ) . message ) )
683+
684+ return true
685+ }
686+ }
687+
688+ async function disablePrompt <
689+ S extends { update ( key : P & string , value : boolean ) : Promise < boolean > } & PromptSettings ,
690+ P extends AllPromptNames ,
691+ > ( settings : S , promptName : P ) {
692+ if ( settings . isPromptEnabled ( promptName ) ) {
693+ await settings . update ( promptName , true )
694+ }
695+ }
696+
669697/**
670698 * Use cautiously as this is misleading. Ideally we create a type
671699 * which is the intersection of the types (only the values that occur
@@ -931,31 +959,3 @@ export async function openSettings(prefix: string): Promise<void> {
931959export async function openSettingsId < K extends keyof SettingsProps > ( key : K ) : Promise < void > {
932960 await vscode . commands . executeCommand ( 'workbench.action.openSettings' , `@id:${ key } ` )
933961}
934-
935- function isPromptEnabled <
936- S extends {
937- _getOrThrow ( key : P & string , defaultValue : boolean ) : boolean
938- _log ( message : string , ...args : any [ ] ) : void
939- update ( key : P & string , value : boolean ) : Promise < boolean >
940- reset ( ) : Promise < void >
941- } & PromptSettings ,
942- P extends AllPromptNames ,
943- > ( settings : S , promptName : P ) {
944- try {
945- return ! settings . _getOrThrow ( promptName , false )
946- } catch ( e ) {
947- settings . _log ( 'prompt check for "%s" failed: %s' , promptName , ( e as Error ) . message )
948- settings . reset ( ) . catch ( ( e ) => getLogger ( ) . error ( `failed to reset prompt settings: %O` , ( e as Error ) . message ) )
949-
950- return true
951- }
952- }
953-
954- async function disablePrompt <
955- S extends { update ( key : P & string , value : boolean ) : Promise < boolean > } & PromptSettings ,
956- P extends AllPromptNames ,
957- > ( settings : S , promptName : P ) {
958- if ( settings . isPromptEnabled ( promptName ) ) {
959- await settings . update ( promptName , true )
960- }
961- }
0 commit comments