Skip to content

Commit 323cbe9

Browse files
azp: ext fix stringList pickmany defaults (#635)
1 parent b5b0b14 commit 323cbe9

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

src/azure-pipelines-vscode-ext/index.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff 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":

0 commit comments

Comments
 (0)