@@ -31,8 +31,8 @@ function promptPattern(metadataManager: MetadataManager) {
3131 throw new ToolkitError ( 'No patterns found in metadata' )
3232 }
3333
34- return createQuickPick < string > (
35- patterns . map ( ( p ) => ( {
34+ const items = [
35+ ... patterns . map ( ( p ) => ( {
3636 label : p . label ,
3737 detail : p . description ,
3838 data : p . label ,
@@ -44,13 +44,22 @@ function promptPattern(metadataManager: MetadataManager) {
4444 ] ,
4545 } ) ) ,
4646 {
47- title : localize ( 'AWS.serverlessLand.initWizard.pattern.prompt' , 'Select a Pattern for your application' ) ,
48- placeholder : 'Choose a pattern for your project' ,
49- buttons : createCommonButtons ( ) ,
50- matchOnDescription : true ,
51- matchOnDetail : true ,
52- }
53- )
47+ label : '' ,
48+ detail : 'Browse more on serverlessland.com' ,
49+ data : 'visit' ,
50+ alwaysShow : true ,
51+ } ,
52+ ]
53+
54+ const quickPick = createQuickPick < string > ( items , {
55+ title : localize ( 'AWS.serverlessLand.initWizard.pattern.prompt' , 'Select a Pattern for your application' ) ,
56+ placeholder : 'Choose a pattern for your project' ,
57+ buttons : createCommonButtons ( ) ,
58+ matchOnDescription : true ,
59+ matchOnDetail : true ,
60+ } )
61+
62+ return quickPick
5463}
5564
5665function promptRuntime ( metadataManager : MetadataManager , pattern : string | undefined ) {
@@ -71,7 +80,7 @@ function promptRuntime(metadataManager: MetadataManager, pattern: string | undef
7180 {
7281 title : localize ( 'AWS.serverlessLand.initWizard.runtime.prompt' , 'Select Runtime' ) ,
7382 placeholder : 'Choose a runtime for your project' ,
74- buttons : [ vscode . QuickInputButtons . Back ] ,
83+ buttons : createCommonButtons ( ) ,
7584 }
7685 )
7786}
@@ -94,24 +103,30 @@ function promptIac(metadataManager: MetadataManager, pattern: string | undefined
94103 {
95104 title : localize ( 'AWS.serverlessLand.initWizard.iac.prompt' , 'Select IaC' ) ,
96105 placeholder : 'Choose an IaC option for your project' ,
97- buttons : [ vscode . QuickInputButtons . Back ] ,
106+ buttons : createCommonButtons ( ) ,
98107 }
99108 )
100109}
101110
102111function promptLocation ( ) {
103112 return createFolderPrompt ( vscode . workspace . workspaceFolders ?? [ ] , {
104113 title : localize ( 'AWS.serverlessLand.initWizard.location.prompt' , 'Select Project Location' ) ,
105- buttons : [ vscode . QuickInputButtons . Back ] ,
106- browseFolderDetail : 'Select a folder for your project' ,
114+ buttons : createCommonButtons ( ) ,
115+ browseFolderDetail : 'Select a parent folder for your project' ,
107116 } )
108117}
109118
110- function promptName ( ) {
119+ function promptName ( location : vscode . Uri | undefined ) {
120+ let folderName : string
121+ if ( location ) {
122+ folderName = path . basename ( location . fsPath )
123+ } else {
124+ folderName = ''
125+ }
111126 return createInputBox ( {
112127 title : localize ( 'AWS.serverlessLand.initWizard.name.prompt' , 'Enter Project Name' ) ,
113- placeholder : ' Enter a name for your new application' ,
114- buttons : [ vscode . QuickInputButtons . Back ] ,
128+ placeholder : ` ${ folderName } /: Enter a name for your new application` ,
129+ buttons : createCommonButtons ( ) ,
115130 validateInput : ( value : string ) : string | undefined => {
116131 if ( ! value ) {
117132 return 'Application name cannot be empty'
@@ -140,6 +155,6 @@ export class CreateServerlessLandWizard extends Wizard<CreateServerlessLandWizar
140155 this . form . runtime . bindPrompter ( ( state ) => promptRuntime ( this . metadataManager , state . pattern ) )
141156 this . form . iac . bindPrompter ( ( state ) => promptIac ( this . metadataManager , state . pattern ) )
142157 this . form . location . bindPrompter ( ( ) => promptLocation ( ) )
143- this . form . name . bindPrompter ( ( ) => promptName ( ) )
158+ this . form . name . bindPrompter ( ( state ) => promptName ( state . location ) )
144159 }
145160}
0 commit comments