@theia/variable-resolver 1.26.0-next.9 → 1.27.0-next.1
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 +9 -3
- package/lib/browser/common-variable-contribution.js.map +1 -1
- package/lib/browser/variable-resolver-service.d.ts +7 -2
- package/lib/browser/variable-resolver-service.d.ts.map +1 -1
- package/lib/browser/variable-resolver-service.js +13 -1
- package/lib/browser/variable-resolver-service.js.map +1 -1
- package/lib/browser/variable-resolver-service.spec.js +7 -0
- package/lib/browser/variable-resolver-service.spec.js.map +1 -1
- package/lib/browser/variable.d.ts +2 -1
- package/lib/browser/variable.d.ts.map +1 -1
- package/lib/browser/variable.js.map +1 -1
- package/lib/common/variable-types.d.ts +8 -0
- package/lib/common/variable-types.d.ts.map +1 -0
- package/lib/common/variable-types.js +18 -0
- package/lib/common/variable-types.js.map +1 -0
- package/package.json +4 -4
- package/src/browser/common-variable-contribution.ts +9 -3
- package/src/browser/variable-resolver-service.spec.ts +9 -1
- package/src/browser/variable-resolver-service.ts +28 -3
- package/src/browser/variable.ts +8 -1
- package/src/common/variable-types.ts +23 -0
|
@@ -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,wDAAwD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAG5E,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,wDAAwD,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAG5E,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;CA8FtE"}
|
|
@@ -63,9 +63,15 @@ let CommonVariableContribution = class CommonVariableContribution {
|
|
|
63
63
|
});
|
|
64
64
|
variables.registerVariable({
|
|
65
65
|
name: 'command',
|
|
66
|
-
resolve: async (_,
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
resolve: async (_, name, __, commandIdVariables, configuration) => {
|
|
67
|
+
let commandId = name;
|
|
68
|
+
if (name && commandIdVariables) {
|
|
69
|
+
const mappedValue = commandIdVariables[name];
|
|
70
|
+
commandId = mappedValue ? mappedValue : name;
|
|
71
|
+
}
|
|
72
|
+
const result = commandId && await this.commands.executeCommand(commandId, configuration);
|
|
73
|
+
return result ? result : undefined;
|
|
74
|
+
}
|
|
69
75
|
});
|
|
70
76
|
variables.registerVariable({
|
|
71
77
|
name: 'input',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,4DAA4E;AAE5E,sFAAgF;AAChF,wEAA0E;AAC1E,4DAAgE;AAChE,kDAA+C;AAC/C,+FAA2F;AAC3F,uFAAkF;AAElF,qDAA4E;AAI5E,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAoBnC,KAAK,CAAC,iBAAiB,CAAC,SAA2B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC9C,SAAS,CAAC,gBAAgB,CAAC;YACvB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC;YACvB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;SACnD,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC;YACvB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE;gBAClC,MAAM,WAAW,GAAG,eAAe,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAChF,MAAM,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC;gBAClD,OAAO,QAAQ,IAAI,EAAE,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC;YACvB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,EAAE;gBACrE,IAAI,CAAC,cAAc,EAAE;oBACjB,OAAO,SAAS,CAAC;iBACpB;gBACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClG,CAAC;SACJ,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"common-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/common-variable-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { VariableRegistry } from './variable';
|
|
2
2
|
import URI from '@theia/core/lib/common/uri';
|
|
3
|
+
import { CommandIdVariables } from '../common/variable-types';
|
|
3
4
|
export interface VariableResolveOptions {
|
|
4
5
|
context?: URI;
|
|
5
6
|
/**
|
|
6
7
|
* Used for resolving inputs, see https://code.visualstudio.com/docs/editor/variables-reference#_input-variables
|
|
7
8
|
*/
|
|
8
9
|
configurationSection?: string;
|
|
10
|
+
commandIdVariables?: CommandIdVariables;
|
|
11
|
+
configuration?: unknown;
|
|
12
|
+
checkAllResolved?: boolean;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* The variable resolver service should be used to resolve variables in strings.
|
|
@@ -20,7 +24,7 @@ export declare class VariableResolverService {
|
|
|
20
24
|
* @returns promise resolved to the provided string array with already resolved variables.
|
|
21
25
|
* Never reject.
|
|
22
26
|
*/
|
|
23
|
-
resolveArray(value: string[], options?: VariableResolveOptions): Promise<string[]>;
|
|
27
|
+
resolveArray(value: string[], options?: VariableResolveOptions): Promise<string[] | undefined>;
|
|
24
28
|
/**
|
|
25
29
|
* Resolve the variables in the given string.
|
|
26
30
|
* @param value Data to resolve
|
|
@@ -28,7 +32,7 @@ export declare class VariableResolverService {
|
|
|
28
32
|
* @returns promise resolved to the provided string with already resolved variables.
|
|
29
33
|
* Never reject.
|
|
30
34
|
*/
|
|
31
|
-
resolve<T>(value: T, options?: VariableResolveOptions): Promise<T>;
|
|
35
|
+
resolve<T>(value: T, options?: VariableResolveOptions): Promise<T | undefined>;
|
|
32
36
|
protected doResolve(value: Object | undefined, context: VariableResolverService.Context): Promise<Object | undefined>;
|
|
33
37
|
protected doResolveObject(obj: object, context: VariableResolverService.Context): Promise<object>;
|
|
34
38
|
protected doResolveArray(values: Array<Object | undefined>, context: VariableResolverService.Context): Promise<Array<Object | undefined>>;
|
|
@@ -42,6 +46,7 @@ export declare namespace VariableResolverService {
|
|
|
42
46
|
protected readonly resolved: Map<string, string | undefined>;
|
|
43
47
|
constructor(variableRegistry: VariableRegistry, options: VariableResolveOptions);
|
|
44
48
|
get(name: string): string | undefined;
|
|
49
|
+
allDefined(): boolean;
|
|
45
50
|
resolve(name: string): Promise<void>;
|
|
46
51
|
}
|
|
47
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable-resolver-service.d.ts","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,GAAG,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"variable-resolver-service.d.ts","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBACa,uBAAuB;IAEhC,SAAS,CAAC,MAAM,CAAC,UAAU,SAAkB;IAEnB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhF;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;IAIlG;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cASxE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAiB3G,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;cAYvF,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;cAS/H,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;cAQzF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAS3G;AACD,yBAAiB,uBAAuB,CAAC;IACrC,MAAa,OAAO;QAKZ,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;QACrD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB;QAJtD,SAAS,CAAC,QAAQ,CAAC,QAAQ,kCAAyC;oBAG7C,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,sBAAsB;QAGtD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;QAIrC,UAAU,IAAI,OAAO;QASf,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;KA+B7C;CACJ"}
|
|
@@ -54,6 +54,9 @@ let VariableResolverService = VariableResolverService_1 = class VariableResolver
|
|
|
54
54
|
async resolve(value, options = {}) {
|
|
55
55
|
const context = new VariableResolverService_1.Context(this.variableRegistry, options);
|
|
56
56
|
const resolved = await this.doResolve(value, context);
|
|
57
|
+
if (options.checkAllResolved && !context.allDefined()) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
57
60
|
return resolved;
|
|
58
61
|
}
|
|
59
62
|
async doResolve(value, context) {
|
|
@@ -125,6 +128,14 @@ exports.VariableResolverService = VariableResolverService;
|
|
|
125
128
|
get(name) {
|
|
126
129
|
return this.resolved.get(name);
|
|
127
130
|
}
|
|
131
|
+
allDefined() {
|
|
132
|
+
for (const value of this.resolved.values()) {
|
|
133
|
+
if (value === undefined) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
128
139
|
async resolve(name) {
|
|
129
140
|
if (this.resolved.has(name)) {
|
|
130
141
|
return;
|
|
@@ -138,7 +149,8 @@ exports.VariableResolverService = VariableResolverService;
|
|
|
138
149
|
argument = parts[1];
|
|
139
150
|
}
|
|
140
151
|
const variable = this.variableRegistry.getVariable(variableName);
|
|
141
|
-
const value = variable &&
|
|
152
|
+
const value = variable &&
|
|
153
|
+
(await variable.resolve(this.options.context, argument, this.options.configurationSection, this.options.commandIdVariables, this.options.configuration));
|
|
142
154
|
// eslint-disable-next-line no-null/no-null
|
|
143
155
|
const stringValue = value !== undefined && value !== null && coreutils_1.JSONExt.isPrimitive(value) ? String(value) : undefined;
|
|
144
156
|
this.resolved.set(name, stringValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable-resolver-service.js","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;;AAEhF,uDAAuD;AAEvD,4DAAkE;AAClE,yCAA8C;AAE9C,sEAAoF;
|
|
1
|
+
{"version":3,"file":"variable-resolver-service.js","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;;AAEhF,uDAAuD;AAEvD,4DAAkE;AAClE,yCAA8C;AAE9C,sEAAoF;AAepF;;GAEG;AAEH,IAAa,uBAAuB,+BAApC,MAAa,uBAAuB;IAMhC;;;;;;OAMG;IACH,YAAY,CAAC,KAAe,EAAE,UAAkC,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAI,KAAQ,EAAE,UAAkC,EAAE;QAC3D,MAAM,OAAO,GAAG,IAAI,yBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;YACnD,OAAO,SAAS,CAAC;SACpB;QACD,OAAO,QAAe,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAyB,EAAE,OAAwC;QACzF,2CAA2C;QAC3C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACvC,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC/C;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC9C;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC/C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,OAAwC;QACjF,MAAM,MAAM,GAER,EAAE,CAAC;QACP,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjC,MAAM,KAAK,GAAI,GAAW,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAAiC,EAAE,OAAwC;QACtG,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,OAAwC;QACnF,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,yBAAuB,CAAC,UAAU,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE;YACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,OAAwC;QACpF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,yBAAuB,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC;QACV,2CAA2C;QAC3C,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SACvC;IACL,CAAC;CACJ,CAAA;AAtFoB,kCAAU,GAAG,cAAe,CAAA;AAEnB;IAAzB,IAAA,kBAAM,EAAC,2BAAgB,CAAC;8BAAsC,2BAAgB;iEAAC;AAJvE,uBAAuB;IADnC,IAAA,sBAAU,GAAE;GACA,uBAAuB,CAwFnC;AAxFY,0DAAuB;AAyFpC,WAAiB,uBAAuB;IACpC,MAAa,OAAO;QAIhB,YACuB,gBAAkC,EAClC,OAA+B;YAD/B,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,YAAO,GAAP,OAAO,CAAwB;YAJnC,aAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;QAKhE,CAAC;QAEL,GAAG,CAAC,IAAY;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,UAAU;YACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;gBACxC,IAAI,KAAK,KAAK,SAAS,EAAE;oBACrB,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,IAAY;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACzB,OAAO;aACV;YACD,IAAI;gBACA,IAAI,YAAY,GAAG,IAAI,CAAC;gBACxB,IAAI,QAA4B,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACxB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;iBACvB;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBACjE,MAAM,KAAK,GACP,QAAQ;oBACR,CAAC,MAAM,QAAQ,CAAC,OAAO,CACnB,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,oBAAoB,EACjC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7B,CAAC,CAAC;gBACP,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,mBAAO,CAAC,WAAW,CAAC,KAA0B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aACtC;QACL,CAAC;KAEJ;IArDY,+BAAO,UAqDnB,CAAA;AACL,CAAC,EAvDgB,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAuDvC;AAhJY,0DAAuB"}
|
|
@@ -70,5 +70,12 @@ describe('variable-resolver-service', () => {
|
|
|
70
70
|
const resolved = await variableResolverService.resolve('workspace: ${workspaceRoot}; file: ${file}; line: ${lineNumber}');
|
|
71
71
|
expect(resolved).is.equal('workspace: ${workspaceRoot}; file: package.json; line: 6');
|
|
72
72
|
});
|
|
73
|
+
it('should check if all variables are resolved', async () => {
|
|
74
|
+
const options = {
|
|
75
|
+
checkAllResolved: true
|
|
76
|
+
};
|
|
77
|
+
const resolved = await variableResolverService.resolve('workspace: ${command:testCommand}; file: ${file}; line: ${lineNumber}', options);
|
|
78
|
+
expect(resolved).equal(undefined);
|
|
79
|
+
});
|
|
73
80
|
});
|
|
74
81
|
//# sourceMappingURL=variable-resolver-service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable-resolver-service.spec.js","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;AAEhF,6BAA6B;AAC7B,4DAA0E;AAC1E,mDAAiD;AACjD,yEAAqE;AACrE,yCAAwD;AACxD,2EAAsE;AAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAE3B,MAAM,CAAC,GAAG,EAAE;IACR,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAEvC,IAAI,aAAwB,CAAC;IAE7B,MAAM,CAAC,GAAG,EAAE;QACR,aAAa,GAAG,IAAI,qBAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACjE,IAAI,CAAC,gBAAO,CAAC,CAAC,EAAE,CAAC,wBAAU,CAAC,CAAC;YAC7B,IAAI,CAAC,2BAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,gBAAkC,CAAC;IACvC,IAAI,uBAAgD,CAAC;IAErD,UAAU,CAAC,GAAG,EAAE;QACZ,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC;QACvD,uBAAuB,GAAG,aAAa,CAAC,GAAG,CAAC,mDAAuB,CAAC,CAAC;QAErE,MAAM,SAAS,GAAe;YAC1B;gBACI,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,cAAc;gBAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;aACjD;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,qBAAqB;gBAClC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC;SACJ,CAAC;QACF,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC7F,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"variable-resolver-service.spec.js","sourceRoot":"","sources":["../../src/browser/variable-resolver-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Disposable, DisposableCollection, MaybePromise } from '@theia/core';
|
|
2
2
|
import URI from '@theia/core/lib/common/uri';
|
|
3
|
+
import { CommandIdVariables } from '../common/variable-types';
|
|
3
4
|
/**
|
|
4
5
|
* Variable can be used inside of strings using ${variableName} syntax.
|
|
5
6
|
*/
|
|
@@ -17,7 +18,7 @@ export interface Variable {
|
|
|
17
18
|
* `undefined` if variable cannot be resolved.
|
|
18
19
|
* Never reject.
|
|
19
20
|
*/
|
|
20
|
-
resolve(context?: URI, argument?: string, configurationSection?: string): MaybePromise<Object | undefined>;
|
|
21
|
+
resolve(context?: URI, argument?: string, configurationSection?: string, commandIdVariables?: CommandIdVariables, configuration?: unknown): MaybePromise<Object | undefined>;
|
|
21
22
|
}
|
|
22
23
|
export declare const VariableContribution: unique symbol;
|
|
23
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../src/browser/variable.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,GAAG,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../src/browser/variable.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,QAAQ;IAErB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,OAAO,CACH,OAAO,CAAC,EAAE,GAAG,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,oBAAoB,CAAC,EAAE,MAAM,EAC7B,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,aAAa,CAAC,EAAE,OAAO,GACxB,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,qBACa,gBAAiB,YAAW,UAAU;IAE/C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAChE,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAA8B;IAE1D,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU;IAahD;;OAEG;IACH,YAAY,IAAI,QAAQ,EAAE;IAI1B;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI/C;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE;CAGzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variable.js","sourceRoot":"","sources":["../../src/browser/variable.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,4DAA0D;AAC1D,sCAA6E;
|
|
1
|
+
{"version":3,"file":"variable.js","sourceRoot":"","sources":["../../src/browser/variable.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,4DAA0D;AAC1D,sCAA6E;AAiChE,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAQnE;;GAEG;AAEH,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAA7B;QAEuB,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAC7C,cAAS,GAAG,IAAI,2BAAoB,EAAE,CAAC;IA4C9D,CAAC;IA1CG,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,QAAkB;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;YAC9E,OAAO,iBAAU,CAAC,IAAI,CAAC;SAC1B;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG;YACf,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;SACtD,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,SAAqB;QACnC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ,CAAA;AA/CY,gBAAgB;IAD5B,IAAA,sBAAU,GAAE;GACA,gBAAgB,CA+C5B;AA/CY,4CAAgB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Holds variable-names to command id mappings (e.g. Provided by specific plugins / extensions)
|
|
3
|
+
* see "variables": https://code.visualstudio.com/api/references/contribution-points#contributes.debuggers
|
|
4
|
+
*/
|
|
5
|
+
export interface CommandIdVariables {
|
|
6
|
+
[id: string]: string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=variable-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-types.d.ts","sourceRoot":"","sources":["../../src/common/variable-types.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
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 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=variable-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-types.js","sourceRoot":"","sources":["../../src/common/variable-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/variable-resolver",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0-next.1+dbc574288c9",
|
|
4
4
|
"description": "Theia - Variable Resolver Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.
|
|
6
|
+
"@theia/core": "1.27.0-next.1+dbc574288c9"
|
|
7
7
|
},
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"watch": "theiaext watch"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@theia/ext-scripts": "1.
|
|
47
|
+
"@theia/ext-scripts": "1.26.0"
|
|
48
48
|
},
|
|
49
49
|
"nyc": {
|
|
50
50
|
"extends": "../../configs/nyc.json"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "dbc574288c95108581d15849df498625d0d81c18"
|
|
53
53
|
}
|
|
@@ -76,9 +76,15 @@ export class CommonVariableContribution implements VariableContribution {
|
|
|
76
76
|
});
|
|
77
77
|
variables.registerVariable({
|
|
78
78
|
name: 'command',
|
|
79
|
-
resolve: async (_,
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
resolve: async (_, name, __, commandIdVariables, configuration) => {
|
|
80
|
+
let commandId = name;
|
|
81
|
+
if (name && commandIdVariables) {
|
|
82
|
+
const mappedValue = commandIdVariables[name];
|
|
83
|
+
commandId = mappedValue ? mappedValue : name;
|
|
84
|
+
}
|
|
85
|
+
const result = commandId && await this.commands.executeCommand(commandId, configuration);
|
|
86
|
+
return result ? result : undefined;
|
|
87
|
+
}
|
|
82
88
|
});
|
|
83
89
|
variables.registerVariable({
|
|
84
90
|
name: 'input',
|
|
@@ -71,7 +71,7 @@ describe('variable-resolver-service', () => {
|
|
|
71
71
|
|
|
72
72
|
it('should resolve known variables in a string array', async () => {
|
|
73
73
|
const resolved = await variableResolverService.resolveArray(['file: ${file}', 'line: ${lineNumber}']);
|
|
74
|
-
expect(resolved
|
|
74
|
+
expect(resolved!.length).to.be.equal(2);
|
|
75
75
|
expect(resolved).to.contain('file: package.json');
|
|
76
76
|
expect(resolved).to.contain('line: 6');
|
|
77
77
|
});
|
|
@@ -80,4 +80,12 @@ describe('variable-resolver-service', () => {
|
|
|
80
80
|
const resolved = await variableResolverService.resolve('workspace: ${workspaceRoot}; file: ${file}; line: ${lineNumber}');
|
|
81
81
|
expect(resolved).is.equal('workspace: ${workspaceRoot}; file: package.json; line: 6');
|
|
82
82
|
});
|
|
83
|
+
|
|
84
|
+
it('should check if all variables are resolved', async () => {
|
|
85
|
+
const options = {
|
|
86
|
+
checkAllResolved: true
|
|
87
|
+
};
|
|
88
|
+
const resolved = await variableResolverService.resolve('workspace: ${command:testCommand}; file: ${file}; line: ${lineNumber}', options);
|
|
89
|
+
expect(resolved).equal(undefined);
|
|
90
|
+
});
|
|
83
91
|
});
|
|
@@ -20,6 +20,7 @@ import { injectable, inject } from '@theia/core/shared/inversify';
|
|
|
20
20
|
import { VariableRegistry } from './variable';
|
|
21
21
|
import URI from '@theia/core/lib/common/uri';
|
|
22
22
|
import { JSONExt, ReadonlyJSONValue } from '@theia/core/shared/@phosphor/coreutils';
|
|
23
|
+
import { CommandIdVariables } from '../common/variable-types';
|
|
23
24
|
|
|
24
25
|
export interface VariableResolveOptions {
|
|
25
26
|
context?: URI;
|
|
@@ -27,6 +28,10 @@ export interface VariableResolveOptions {
|
|
|
27
28
|
* Used for resolving inputs, see https://code.visualstudio.com/docs/editor/variables-reference#_input-variables
|
|
28
29
|
*/
|
|
29
30
|
configurationSection?: string;
|
|
31
|
+
commandIdVariables?: CommandIdVariables;
|
|
32
|
+
configuration?: unknown;
|
|
33
|
+
// Return 'undefined' if not all variables were successfully resolved.
|
|
34
|
+
checkAllResolved?: boolean;
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
/**
|
|
@@ -46,7 +51,7 @@ export class VariableResolverService {
|
|
|
46
51
|
* @returns promise resolved to the provided string array with already resolved variables.
|
|
47
52
|
* Never reject.
|
|
48
53
|
*/
|
|
49
|
-
resolveArray(value: string[], options: VariableResolveOptions = {}): Promise<string[]> {
|
|
54
|
+
resolveArray(value: string[], options: VariableResolveOptions = {}): Promise<string[] | undefined> {
|
|
50
55
|
return this.resolve(value, options);
|
|
51
56
|
}
|
|
52
57
|
|
|
@@ -57,9 +62,12 @@ export class VariableResolverService {
|
|
|
57
62
|
* @returns promise resolved to the provided string with already resolved variables.
|
|
58
63
|
* Never reject.
|
|
59
64
|
*/
|
|
60
|
-
async resolve<T>(value: T, options: VariableResolveOptions = {}): Promise<T> {
|
|
65
|
+
async resolve<T>(value: T, options: VariableResolveOptions = {}): Promise<T | undefined> {
|
|
61
66
|
const context = new VariableResolverService.Context(this.variableRegistry, options);
|
|
62
67
|
const resolved = await this.doResolve(value, context);
|
|
68
|
+
if (options.checkAllResolved && !context.allDefined()) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
63
71
|
return resolved as any;
|
|
64
72
|
}
|
|
65
73
|
|
|
@@ -133,6 +141,15 @@ export namespace VariableResolverService {
|
|
|
133
141
|
return this.resolved.get(name);
|
|
134
142
|
}
|
|
135
143
|
|
|
144
|
+
allDefined(): boolean {
|
|
145
|
+
for (const value of this.resolved.values()) {
|
|
146
|
+
if (value === undefined) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
|
|
136
153
|
async resolve(name: string): Promise<void> {
|
|
137
154
|
if (this.resolved.has(name)) {
|
|
138
155
|
return;
|
|
@@ -146,7 +163,15 @@ export namespace VariableResolverService {
|
|
|
146
163
|
argument = parts[1];
|
|
147
164
|
}
|
|
148
165
|
const variable = this.variableRegistry.getVariable(variableName);
|
|
149
|
-
const value =
|
|
166
|
+
const value =
|
|
167
|
+
variable &&
|
|
168
|
+
(await variable.resolve(
|
|
169
|
+
this.options.context,
|
|
170
|
+
argument,
|
|
171
|
+
this.options.configurationSection,
|
|
172
|
+
this.options.commandIdVariables,
|
|
173
|
+
this.options.configuration
|
|
174
|
+
));
|
|
150
175
|
// eslint-disable-next-line no-null/no-null
|
|
151
176
|
const stringValue = value !== undefined && value !== null && JSONExt.isPrimitive(value as ReadonlyJSONValue) ? String(value) : undefined;
|
|
152
177
|
this.resolved.set(name, stringValue);
|
package/src/browser/variable.ts
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { injectable } from '@theia/core/shared/inversify';
|
|
18
18
|
import { Disposable, DisposableCollection, MaybePromise } from '@theia/core';
|
|
19
19
|
import URI from '@theia/core/lib/common/uri';
|
|
20
|
+
import { CommandIdVariables } from '../common/variable-types';
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Variable can be used inside of strings using ${variableName} syntax.
|
|
@@ -38,7 +39,13 @@ export interface Variable {
|
|
|
38
39
|
* `undefined` if variable cannot be resolved.
|
|
39
40
|
* Never reject.
|
|
40
41
|
*/
|
|
41
|
-
resolve(
|
|
42
|
+
resolve(
|
|
43
|
+
context?: URI,
|
|
44
|
+
argument?: string,
|
|
45
|
+
configurationSection?: string,
|
|
46
|
+
commandIdVariables?: CommandIdVariables,
|
|
47
|
+
configuration?: unknown
|
|
48
|
+
): MaybePromise<Object | undefined>;
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
export const VariableContribution = Symbol('VariableContribution');
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
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 WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Holds variable-names to command id mappings (e.g. Provided by specific plugins / extensions)
|
|
19
|
+
* see "variables": https://code.visualstudio.com/api/references/contribution-points#contributes.debuggers
|
|
20
|
+
*/
|
|
21
|
+
export interface CommandIdVariables {
|
|
22
|
+
[id: string]: string
|
|
23
|
+
}
|