@@ -5,6 +5,7 @@ import * as vscode from "vscode";
5
5
import { selectTestFrameworkStep } from "./SelectTestFrameworkStep" ;
6
6
import { specifyProjectNameStep } from "./SpecifyProjectNameStep" ;
7
7
import { IProjectCreationMetadata , IProjectCreationStep , ProjectType , StepResult } from "./types" ;
8
+ import { createQuickInputButtons , switchToAdvancedLabel , updateTotalSteps } from "./utils" ;
8
9
9
10
export class SelectScriptDSLStep implements IProjectCreationStep {
10
11
public async run ( metadata : IProjectCreationMetadata ) : Promise < StepResult > {
@@ -19,16 +20,7 @@ export class SelectScriptDSLStep implements IProjectCreationStep {
19
20
pickBox . matchOnDescription = true ;
20
21
pickBox . ignoreFocusOut = true ;
21
22
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 ) ;
32
24
disposables . push (
33
25
pickBox . onDidAccept ( ( ) => {
34
26
const selectedScriptDSL = pickBox . selectedItems [ 0 ] ;
@@ -52,6 +44,15 @@ export class SelectScriptDSLStep implements IProjectCreationStep {
52
44
resolve ( StepResult . NEXT ) ;
53
45
}
54
46
} ) ,
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
+ } ) ,
55
56
pickBox . onDidHide ( ( ) => {
56
57
resolve ( StepResult . STOP ) ;
57
58
} )
0 commit comments