@@ -5,6 +5,7 @@ import * as vscode from "vscode";
55import { selectTestFrameworkStep } from "./SelectTestFrameworkStep" ;
66import { specifyProjectNameStep } from "./SpecifyProjectNameStep" ;
77import { IProjectCreationMetadata , IProjectCreationStep , ProjectType , StepResult } from "./types" ;
8+ import { createQuickInputButtons , switchToAdvancedLabel , updateTotalSteps } from "./utils" ;
89
910export class SelectScriptDSLStep implements IProjectCreationStep {
1011 public async run ( metadata : IProjectCreationMetadata ) : Promise < StepResult > {
@@ -19,16 +20,7 @@ export class SelectScriptDSLStep implements IProjectCreationStep {
1920 pickBox . matchOnDescription = true ;
2021 pickBox . ignoreFocusOut = true ;
2122 pickBox . items = this . getScriptDSLPickItems ( ) ;
22- if ( metadata . steps . length ) {
23- pickBox . buttons = [ vscode . QuickInputButtons . Back ] ;
24- disposables . push (
25- pickBox . onDidTriggerButton ( ( item ) => {
26- if ( item === vscode . QuickInputButtons . Back ) {
27- resolve ( StepResult . PREVIOUS ) ;
28- }
29- } )
30- ) ;
31- }
23+ pickBox . buttons = createQuickInputButtons ( metadata ) ;
3224 disposables . push (
3325 pickBox . onDidAccept ( ( ) => {
3426 const selectedScriptDSL = pickBox . selectedItems [ 0 ] ;
@@ -52,6 +44,15 @@ export class SelectScriptDSLStep implements IProjectCreationStep {
5244 resolve ( StepResult . NEXT ) ;
5345 }
5446 } ) ,
47+ pickBox . onDidTriggerButton ( ( item ) => {
48+ if ( item === vscode . QuickInputButtons . Back ) {
49+ resolve ( StepResult . PREVIOUS ) ;
50+ } else if ( item . tooltip === switchToAdvancedLabel ) {
51+ metadata . isAdvanced = true ;
52+ updateTotalSteps ( metadata ) ;
53+ resolve ( StepResult . RESTART ) ;
54+ }
55+ } ) ,
5556 pickBox . onDidHide ( ( ) => {
5657 resolve ( StepResult . STOP ) ;
5758 } )
0 commit comments