@theia/variable-resolver 1.77.0-next.28 → 1.77.0-next.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/common-variable-contribution.d.ts.map +1 -1
- package/lib/browser/common-variable-contribution.js +15 -4
- package/lib/browser/common-variable-contribution.js.map +1 -1
- package/lib/browser/common-variable-contribution.spec.d.ts +2 -0
- package/lib/browser/common-variable-contribution.spec.d.ts.map +1 -0
- package/lib/browser/common-variable-contribution.spec.js +135 -0
- package/lib/browser/common-variable-contribution.spec.js.map +1 -0
- package/package.json +3 -3
- package/src/browser/common-variable-contribution.spec.ts +157 -0
- package/src/browser/common-variable-contribution.ts +15 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAK5E,qBACa,0BAA2B,YAAW,oBAAoB;IAGnE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAE1C,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"common-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAK5E,qBACa,0BAA2B,YAAW,oBAAoB;IAGnE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAG5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAE1C,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8GtE"}
|
|
@@ -87,10 +87,15 @@ let CommonVariableContribution = class CommonVariableContribution {
|
|
|
87
87
|
if (typeof input.description !== 'string') {
|
|
88
88
|
return undefined;
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
const value = await this.quickInputService?.input({
|
|
91
91
|
prompt: input.description,
|
|
92
|
-
value: input.default
|
|
92
|
+
value: input.default,
|
|
93
|
+
ignoreFocusLost: true
|
|
93
94
|
});
|
|
95
|
+
if (value === undefined) {
|
|
96
|
+
throw (0, cancellation_1.cancelled)();
|
|
97
|
+
}
|
|
98
|
+
return value;
|
|
94
99
|
}
|
|
95
100
|
if (input.type === 'pickString') {
|
|
96
101
|
if (typeof input.description !== 'string' || !Array.isArray(input.options)) {
|
|
@@ -115,8 +120,14 @@ let CommonVariableContribution = class CommonVariableContribution {
|
|
|
115
120
|
});
|
|
116
121
|
}
|
|
117
122
|
}
|
|
118
|
-
const selectedPick = await this.quickInputService?.showQuickPick(elements, {
|
|
119
|
-
|
|
123
|
+
const selectedPick = await this.quickInputService?.showQuickPick(elements, {
|
|
124
|
+
placeholder: input.description,
|
|
125
|
+
ignoreFocusOut: true
|
|
126
|
+
});
|
|
127
|
+
if (!selectedPick) {
|
|
128
|
+
throw (0, cancellation_1.cancelled)();
|
|
129
|
+
}
|
|
130
|
+
return selectedPick.value;
|
|
120
131
|
}
|
|
121
132
|
if (input.type === 'command') {
|
|
122
133
|
if (typeof input.command !== 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-variable-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 Md. Mehedi Hasan.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
|
|
19
|
+
let disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
20
|
+
const resource_context_key_1 = require("@theia/core/lib/browser/resource-context-key");
|
|
21
|
+
const application_protocol_1 = require("@theia/core/lib/common/application-protocol");
|
|
22
|
+
const command_1 = require("@theia/core/lib/common/command");
|
|
23
|
+
const env_variables_1 = require("@theia/core/lib/common/env-variables");
|
|
24
|
+
const cancellation_1 = require("@theia/core/lib/common/cancellation");
|
|
25
|
+
const logger_1 = require("@theia/core/lib/common/logger");
|
|
26
|
+
const preference_service_1 = require("@theia/core/lib/common/preferences/preference-service");
|
|
27
|
+
const quick_pick_service_1 = require("@theia/core/lib/common/quick-pick-service");
|
|
28
|
+
const mock_logger_1 = require("@theia/core/lib/common/test/mock-logger");
|
|
29
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
30
|
+
const chai_1 = require("chai");
|
|
31
|
+
const sinon = require("sinon");
|
|
32
|
+
const uri_1 = require("@theia/core/lib/common/uri");
|
|
33
|
+
const common_variable_contribution_1 = require("./common-variable-contribution");
|
|
34
|
+
const variable_1 = require("./variable");
|
|
35
|
+
disableJSDOM();
|
|
36
|
+
describe('CommonVariableContribution', () => {
|
|
37
|
+
before(() => {
|
|
38
|
+
disableJSDOM = (0, jsdom_1.enableJSDOM)();
|
|
39
|
+
});
|
|
40
|
+
after(() => {
|
|
41
|
+
disableJSDOM();
|
|
42
|
+
});
|
|
43
|
+
const workspace = new uri_1.default('file:///workspace');
|
|
44
|
+
const promptInput = {
|
|
45
|
+
id: 'task-argument',
|
|
46
|
+
type: 'promptString',
|
|
47
|
+
description: 'Enter a task argument',
|
|
48
|
+
default: 'default-value'
|
|
49
|
+
};
|
|
50
|
+
const pickInput = {
|
|
51
|
+
id: 'task-argument-choice',
|
|
52
|
+
type: 'pickString',
|
|
53
|
+
description: 'Choose a task argument',
|
|
54
|
+
options: ['first', 'second'],
|
|
55
|
+
default: 'second'
|
|
56
|
+
};
|
|
57
|
+
let variables;
|
|
58
|
+
let input;
|
|
59
|
+
let showQuickPick;
|
|
60
|
+
beforeEach(async () => {
|
|
61
|
+
const container = new inversify_1.Container();
|
|
62
|
+
container.bind(logger_1.ILogger).to(mock_logger_1.MockLogger);
|
|
63
|
+
input = sinon.stub().resolves('task-argument');
|
|
64
|
+
showQuickPick = sinon.stub();
|
|
65
|
+
const inputs = [promptInput, pickInput];
|
|
66
|
+
container.bind(env_variables_1.EnvVariablesServer).toConstantValue({
|
|
67
|
+
getExecPath: async () => ''
|
|
68
|
+
});
|
|
69
|
+
container.bind(command_1.CommandService).toConstantValue({});
|
|
70
|
+
container.bind(preference_service_1.PreferenceService).toConstantValue({
|
|
71
|
+
get: sinon.stub().returns({ inputs })
|
|
72
|
+
});
|
|
73
|
+
container.bind(resource_context_key_1.ResourceContextKey).toConstantValue({
|
|
74
|
+
get: () => workspace.toString()
|
|
75
|
+
});
|
|
76
|
+
container.bind(quick_pick_service_1.QuickInputService).toConstantValue({
|
|
77
|
+
input,
|
|
78
|
+
showQuickPick
|
|
79
|
+
});
|
|
80
|
+
container.bind(application_protocol_1.ApplicationServer).toConstantValue({});
|
|
81
|
+
container.bind(variable_1.VariableRegistry).toSelf();
|
|
82
|
+
container.bind(common_variable_contribution_1.CommonVariableContribution).toSelf();
|
|
83
|
+
variables = container.get(variable_1.VariableRegistry);
|
|
84
|
+
await container.get(common_variable_contribution_1.CommonVariableContribution).registerVariables(variables);
|
|
85
|
+
});
|
|
86
|
+
it('keeps promptString inputs open when focus is lost', async () => {
|
|
87
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
88
|
+
(0, chai_1.expect)(resolved).to.equal('task-argument');
|
|
89
|
+
sinon.assert.calledOnceWithExactly(input, {
|
|
90
|
+
prompt: 'Enter a task argument',
|
|
91
|
+
value: 'default-value',
|
|
92
|
+
ignoreFocusLost: true
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('accepts an empty promptString value', async () => {
|
|
96
|
+
input.resolves('');
|
|
97
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
98
|
+
(0, chai_1.expect)(resolved).to.equal('');
|
|
99
|
+
});
|
|
100
|
+
it('cancels promptString inputs when input returns undefined', async () => {
|
|
101
|
+
input.resolves(undefined);
|
|
102
|
+
let error;
|
|
103
|
+
try {
|
|
104
|
+
await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
error = e;
|
|
108
|
+
}
|
|
109
|
+
(0, chai_1.expect)((0, cancellation_1.isCancelled)(error)).to.equal(true);
|
|
110
|
+
});
|
|
111
|
+
it('keeps pickString inputs open when focus is lost', async () => {
|
|
112
|
+
showQuickPick.resolves({ label: 'first', value: 'first' });
|
|
113
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
|
|
114
|
+
(0, chai_1.expect)(resolved).to.equal('first');
|
|
115
|
+
sinon.assert.calledOnceWithExactly(showQuickPick, [
|
|
116
|
+
{ label: 'second', value: 'second', description: 'Default' },
|
|
117
|
+
{ label: 'first', value: 'first' }
|
|
118
|
+
], {
|
|
119
|
+
placeholder: 'Choose a task argument',
|
|
120
|
+
ignoreFocusOut: true
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
it('cancels pickString inputs when no item is selected', async () => {
|
|
124
|
+
showQuickPick.resolves(undefined);
|
|
125
|
+
let error;
|
|
126
|
+
try {
|
|
127
|
+
await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
error = e;
|
|
131
|
+
}
|
|
132
|
+
(0, chai_1.expect)((0, cancellation_1.isCancelled)(error)).to.equal(true);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=common-variable-contribution.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-variable-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/variable-resolver",
|
|
3
|
-
"version": "1.77.0-next.
|
|
3
|
+
"version": "1.77.0-next.37+29045502f",
|
|
4
4
|
"description": "Theia - Variable Resolver Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.77.0-next.
|
|
6
|
+
"@theia/core": "1.77.0-next.37+29045502f",
|
|
7
7
|
"tslib": "^2.8.1"
|
|
8
8
|
},
|
|
9
9
|
"publishConfig": {
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"nyc": {
|
|
51
51
|
"extends": "../../configs/nyc.json"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "29045502ffe2bd1ecd5c655b40f37f0d0bc0c4ad"
|
|
54
54
|
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 Md. Mehedi Hasan.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
|
|
18
|
+
|
|
19
|
+
let disableJSDOM = enableJSDOM();
|
|
20
|
+
|
|
21
|
+
import { ResourceContextKey } from '@theia/core/lib/browser/resource-context-key';
|
|
22
|
+
import { ApplicationServer } from '@theia/core/lib/common/application-protocol';
|
|
23
|
+
import { CommandService } from '@theia/core/lib/common/command';
|
|
24
|
+
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
25
|
+
import { isCancelled } from '@theia/core/lib/common/cancellation';
|
|
26
|
+
import { ILogger } from '@theia/core/lib/common/logger';
|
|
27
|
+
import { PreferenceService } from '@theia/core/lib/common/preferences/preference-service';
|
|
28
|
+
import { QuickInputService } from '@theia/core/lib/common/quick-pick-service';
|
|
29
|
+
import { MockLogger } from '@theia/core/lib/common/test/mock-logger';
|
|
30
|
+
import { Container } from '@theia/core/shared/inversify';
|
|
31
|
+
import { expect } from 'chai';
|
|
32
|
+
import * as sinon from 'sinon';
|
|
33
|
+
import URI from '@theia/core/lib/common/uri';
|
|
34
|
+
import { CommonVariableContribution } from './common-variable-contribution';
|
|
35
|
+
import { VariableInput } from './variable-input';
|
|
36
|
+
import { VariableRegistry } from './variable';
|
|
37
|
+
|
|
38
|
+
disableJSDOM();
|
|
39
|
+
|
|
40
|
+
describe('CommonVariableContribution', () => {
|
|
41
|
+
|
|
42
|
+
before(() => {
|
|
43
|
+
disableJSDOM = enableJSDOM();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
after(() => {
|
|
47
|
+
disableJSDOM();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const workspace = new URI('file:///workspace');
|
|
51
|
+
const promptInput: VariableInput = {
|
|
52
|
+
id: 'task-argument',
|
|
53
|
+
type: 'promptString',
|
|
54
|
+
description: 'Enter a task argument',
|
|
55
|
+
default: 'default-value'
|
|
56
|
+
};
|
|
57
|
+
const pickInput: VariableInput = {
|
|
58
|
+
id: 'task-argument-choice',
|
|
59
|
+
type: 'pickString',
|
|
60
|
+
description: 'Choose a task argument',
|
|
61
|
+
options: ['first', 'second'],
|
|
62
|
+
default: 'second'
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
let variables: VariableRegistry;
|
|
66
|
+
let input: sinon.SinonStub;
|
|
67
|
+
let showQuickPick: sinon.SinonStub;
|
|
68
|
+
|
|
69
|
+
beforeEach(async () => {
|
|
70
|
+
const container = new Container();
|
|
71
|
+
container.bind(ILogger).to(MockLogger);
|
|
72
|
+
input = sinon.stub().resolves('task-argument');
|
|
73
|
+
showQuickPick = sinon.stub();
|
|
74
|
+
const inputs = [promptInput, pickInput];
|
|
75
|
+
|
|
76
|
+
container.bind<Partial<EnvVariablesServer>>(EnvVariablesServer).toConstantValue({
|
|
77
|
+
getExecPath: async () => ''
|
|
78
|
+
});
|
|
79
|
+
container.bind<Partial<CommandService>>(CommandService).toConstantValue({});
|
|
80
|
+
container.bind<Partial<PreferenceService>>(PreferenceService).toConstantValue({
|
|
81
|
+
get: sinon.stub().returns({ inputs })
|
|
82
|
+
});
|
|
83
|
+
container.bind<Partial<ResourceContextKey>>(ResourceContextKey).toConstantValue({
|
|
84
|
+
get: () => workspace.toString()
|
|
85
|
+
});
|
|
86
|
+
container.bind<Partial<QuickInputService>>(QuickInputService).toConstantValue({
|
|
87
|
+
input,
|
|
88
|
+
showQuickPick
|
|
89
|
+
});
|
|
90
|
+
container.bind<Partial<ApplicationServer>>(ApplicationServer).toConstantValue({});
|
|
91
|
+
container.bind(VariableRegistry).toSelf();
|
|
92
|
+
container.bind(CommonVariableContribution).toSelf();
|
|
93
|
+
|
|
94
|
+
variables = container.get(VariableRegistry);
|
|
95
|
+
await container.get(CommonVariableContribution).registerVariables(variables);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
it('keeps promptString inputs open when focus is lost', async () => {
|
|
99
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
100
|
+
|
|
101
|
+
expect(resolved).to.equal('task-argument');
|
|
102
|
+
sinon.assert.calledOnceWithExactly(input, {
|
|
103
|
+
prompt: 'Enter a task argument',
|
|
104
|
+
value: 'default-value',
|
|
105
|
+
ignoreFocusLost: true
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
it('accepts an empty promptString value', async () => {
|
|
110
|
+
input.resolves('');
|
|
111
|
+
|
|
112
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
113
|
+
|
|
114
|
+
expect(resolved).to.equal('');
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('cancels promptString inputs when input returns undefined', async () => {
|
|
118
|
+
input.resolves(undefined);
|
|
119
|
+
|
|
120
|
+
let error: Error | undefined;
|
|
121
|
+
try {
|
|
122
|
+
await variables.getVariable('input')?.resolve(workspace, 'task-argument', 'tasks');
|
|
123
|
+
} catch (e) {
|
|
124
|
+
error = e as Error;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
expect(isCancelled(error)).to.equal(true);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it('keeps pickString inputs open when focus is lost', async () => {
|
|
131
|
+
showQuickPick.resolves({ label: 'first', value: 'first' });
|
|
132
|
+
|
|
133
|
+
const resolved = await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
|
|
134
|
+
|
|
135
|
+
expect(resolved).to.equal('first');
|
|
136
|
+
sinon.assert.calledOnceWithExactly(showQuickPick, [
|
|
137
|
+
{ label: 'second', value: 'second', description: 'Default' },
|
|
138
|
+
{ label: 'first', value: 'first' }
|
|
139
|
+
], {
|
|
140
|
+
placeholder: 'Choose a task argument',
|
|
141
|
+
ignoreFocusOut: true
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('cancels pickString inputs when no item is selected', async () => {
|
|
146
|
+
showQuickPick.resolves(undefined);
|
|
147
|
+
|
|
148
|
+
let error: Error | undefined;
|
|
149
|
+
try {
|
|
150
|
+
await variables.getVariable('input')?.resolve(workspace, 'task-argument-choice', 'tasks');
|
|
151
|
+
} catch (e) {
|
|
152
|
+
error = e as Error;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
expect(isCancelled(error)).to.equal(true);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
@@ -108,10 +108,15 @@ export class CommonVariableContribution implements VariableContribution {
|
|
|
108
108
|
if (typeof input.description !== 'string') {
|
|
109
109
|
return undefined;
|
|
110
110
|
}
|
|
111
|
-
|
|
111
|
+
const value = await this.quickInputService?.input({
|
|
112
112
|
prompt: input.description,
|
|
113
|
-
value: input.default
|
|
113
|
+
value: input.default,
|
|
114
|
+
ignoreFocusLost: true
|
|
114
115
|
});
|
|
116
|
+
if (value === undefined) {
|
|
117
|
+
throw cancelled();
|
|
118
|
+
}
|
|
119
|
+
return value;
|
|
115
120
|
}
|
|
116
121
|
if (input.type === 'pickString') {
|
|
117
122
|
if (typeof input.description !== 'string' || !Array.isArray(input.options)) {
|
|
@@ -135,8 +140,14 @@ export class CommonVariableContribution implements VariableContribution {
|
|
|
135
140
|
});
|
|
136
141
|
}
|
|
137
142
|
}
|
|
138
|
-
const selectedPick = await this.quickInputService?.showQuickPick(elements, {
|
|
139
|
-
|
|
143
|
+
const selectedPick = await this.quickInputService?.showQuickPick(elements, {
|
|
144
|
+
placeholder: input.description,
|
|
145
|
+
ignoreFocusOut: true
|
|
146
|
+
});
|
|
147
|
+
if (!selectedPick) {
|
|
148
|
+
throw cancelled();
|
|
149
|
+
}
|
|
150
|
+
return selectedPick.value;
|
|
140
151
|
}
|
|
141
152
|
if (input.type === 'command') {
|
|
142
153
|
if (typeof input.command !== 'string') {
|