44import { workspace } from "vscode" ;
55import { instrumentOperationStep } from "vscode-extension-telemetry-wrapper" ;
66import { serviceManager } from "../model" ;
7- import { Language , MatadataType } from "../model/Metadata" ;
7+ import { Language , MetadataType } from "../model/Metadata" ;
88import { IPickMetadata , IProjectMetadata , IStep } from "./HandlerInterfaces" ;
99import { SpecifyGroupIdStep } from "./SpecifyGroupIdStep" ;
1010import { createPickBox } from "./utils" ;
@@ -30,17 +30,27 @@ export class SpecifyLanguageStep implements IStep {
3030
3131 private async specifyLanguage ( projectMetadata : IProjectMetadata ) : Promise < boolean > {
3232 const language : string = projectMetadata . defaults . language || workspace . getConfiguration ( "spring.initializr" ) . get < string > ( "defaultLanguage" ) ;
33+
3334 if ( language ) {
3435 projectMetadata . language = language && language . toLowerCase ( ) ;
3536 return true ;
3637 }
38+
39+ const items = await serviceManager . getItems ( projectMetadata . serviceUrl , MetadataType . LANGUAGE ) ;
40+
41+ if ( projectMetadata . enableSmartDefaults === true ) {
42+ projectMetadata . language = items . find ( x => x . default === true ) ?. label . toLowerCase ( ) ;
43+ return true ;
44+ }
45+
3746 const pickMetaData : IPickMetadata < Language > = {
3847 metadata : projectMetadata ,
3948 title : "Spring Initializr: Specify project language" ,
4049 pickStep : SpecifyLanguageStep . getInstance ( ) ,
4150 placeholder : "Specify project language." ,
42- items : serviceManager . getItems ( projectMetadata . serviceUrl , MatadataType . LANGUAGE ) ,
51+ items : items
4352 } ;
53+
4454 return await createPickBox ( pickMetaData ) ;
4555 }
4656}
0 commit comments