File tree Expand file tree Collapse file tree
src/azure-pipelines-vscode-ext Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -242,21 +242,27 @@ function activate(context) {
242242 var acceptYAML = false ;
243243 var prefix = ! isRequired ? "" : "required " ;
244244 if ( values && values . length ) {
245+ const canPickMany = type . endsWith ( "List" ) ;
245246 var pdef = def ? JSON . parse ( def ) : undefined ;
247+ const defConvertResult = value => def && value === def ? undefined : value ;
248+ var convertResult = defConvertResult ;
246249 if ( pdef != undefined ) {
247- values = values . filter ( v => v !== pdef . toString ( ) ) ;
248- values . unshift ( pdef . toString ( ) ) ;
250+ if ( canPickMany && pdef . includes ) {
251+ values = values . map ( v => ( { label : v , picked : pdef . includes ( v ) } ) ) ;
252+ convertResult = v => v . length == values . filter ( s => s . picked ) . length && v . every ( s => s . picked ) ? undefined : v . map ( v => v . label ) ;
253+ } else {
254+ const sdef = pdef . toString ( ) ;
255+ values = values . filter ( v => v !== sdef ) ;
256+ values . unshift ( sdef ) ;
257+ }
249258 }
250- value = await vscode . window . showQuickPick ( values , {
251- canPickMany : type . endsWith ( "List" ) ,
259+ value = convertResult ( await vscode . window . showQuickPick ( values , {
260+ canPickMany : canPickMany ,
252261 placeHolder : pdef || "value" ,
253262 prompt : name ,
254263 ignoreFocusOut : true ,
255264 title : `Select the ${ prefix } Parameter '${ name } ' of Type '${ type } '`
256- } ) ;
257- if ( def && value === def ) {
258- value = undefined ;
259- }
265+ } ) ) ;
260266 } else {
261267 switch ( type ) {
262268 case "stringList" :
You can’t perform that action at this time.
0 commit comments