@theia/vsx-registry 1.45.0 → 1.46.0-next.72
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/README.md +45 -45
- package/lib/browser/recommended-extensions/preference-provider-overrides.d.ts +17 -17
- package/lib/browser/recommended-extensions/preference-provider-overrides.js +95 -95
- package/lib/browser/recommended-extensions/recommended-extensions-json-schema.d.ts +14 -14
- package/lib/browser/recommended-extensions/recommended-extensions-json-schema.js +94 -94
- package/lib/browser/recommended-extensions/recommended-extensions-preference-contribution.d.ts +11 -11
- package/lib/browser/recommended-extensions/recommended-extensions-preference-contribution.js +59 -59
- package/lib/browser/vsx-extension-commands.d.ts +14 -13
- package/lib/browser/vsx-extension-commands.d.ts.map +1 -1
- package/lib/browser/vsx-extension-commands.js +68 -63
- package/lib/browser/vsx-extension-commands.js.map +1 -1
- package/lib/browser/vsx-extension-editor-manager.d.ts +9 -9
- package/lib/browser/vsx-extension-editor-manager.js +49 -49
- package/lib/browser/vsx-extension-editor.d.ts +21 -21
- package/lib/browser/vsx-extension-editor.js +109 -109
- package/lib/browser/vsx-extension.d.ts +146 -143
- package/lib/browser/vsx-extension.d.ts.map +1 -1
- package/lib/browser/vsx-extension.js +616 -596
- package/lib/browser/vsx-extension.js.map +1 -1
- package/lib/browser/vsx-extensions-contribution.d.ts +70 -60
- package/lib/browser/vsx-extensions-contribution.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-contribution.js +375 -344
- package/lib/browser/vsx-extensions-contribution.js.map +1 -1
- package/lib/browser/vsx-extensions-model.d.ts +75 -72
- package/lib/browser/vsx-extensions-model.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-model.js +437 -391
- package/lib/browser/vsx-extensions-model.js.map +1 -1
- package/lib/browser/vsx-extensions-preferences.d.ts +12 -0
- package/lib/browser/vsx-extensions-preferences.d.ts.map +1 -0
- package/lib/browser/vsx-extensions-preferences.js +47 -0
- package/lib/browser/vsx-extensions-preferences.js.map +1 -0
- package/lib/browser/vsx-extensions-search-bar.d.ts +22 -14
- package/lib/browser/vsx-extensions-search-bar.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-search-bar.js +106 -75
- package/lib/browser/vsx-extensions-search-bar.js.map +1 -1
- package/lib/browser/vsx-extensions-search-model.d.ts +21 -21
- package/lib/browser/vsx-extensions-search-model.js +70 -70
- package/lib/browser/vsx-extensions-source.d.ts +19 -19
- package/lib/browser/vsx-extensions-source.js +102 -102
- package/lib/browser/vsx-extensions-view-container.d.ts +49 -49
- package/lib/browser/vsx-extensions-view-container.js +179 -179
- package/lib/browser/vsx-extensions-widget.d.ts +35 -34
- package/lib/browser/vsx-extensions-widget.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-widget.js +164 -156
- package/lib/browser/vsx-extensions-widget.js.map +1 -1
- package/lib/browser/vsx-language-quick-pick-service.d.ts +15 -15
- package/lib/browser/vsx-language-quick-pick-service.js +121 -121
- package/lib/browser/vsx-registry-frontend-module.d.ts +4 -4
- package/lib/browser/vsx-registry-frontend-module.d.ts.map +1 -1
- package/lib/browser/vsx-registry-frontend-module.js +99 -97
- package/lib/browser/vsx-registry-frontend-module.js.map +1 -1
- package/lib/common/index.d.ts +3 -3
- package/lib/common/index.js +25 -25
- package/lib/common/ovsx-client-provider.d.ts +13 -13
- package/lib/common/ovsx-client-provider.js +29 -29
- package/lib/common/vsx-environment.d.ts +9 -9
- package/lib/common/vsx-environment.js +20 -20
- package/lib/common/vsx-extension-uri.d.ts +3 -3
- package/lib/common/vsx-extension-uri.js +20 -20
- package/lib/common/vsx-registry-common-module.d.ts +3 -3
- package/lib/common/vsx-registry-common-module.js +57 -57
- package/lib/node/vsx-cli.d.ts +9 -9
- package/lib/node/vsx-cli.js +41 -41
- package/lib/node/vsx-environment-impl.d.ts +14 -14
- package/lib/node/vsx-environment-impl.js +61 -61
- package/lib/node/vsx-extension-resolver.d.ts +20 -20
- package/lib/node/vsx-extension-resolver.js +154 -154
- package/lib/node/vsx-registry-backend-module.d.ts +3 -3
- package/lib/node/vsx-registry-backend-module.js +35 -35
- package/lib/package.spec.js +25 -25
- package/package.json +12 -12
- package/src/browser/recommended-extensions/preference-provider-overrides.ts +99 -99
- package/src/browser/recommended-extensions/recommended-extensions-json-schema.ts +74 -74
- package/src/browser/recommended-extensions/recommended-extensions-preference-contribution.ts +68 -68
- package/src/browser/style/extensions.svg +4 -4
- package/src/browser/style/index.css +436 -373
- package/src/browser/vsx-extension-commands.ts +68 -63
- package/src/browser/vsx-extension-editor-manager.ts +42 -42
- package/src/browser/vsx-extension-editor.tsx +96 -96
- package/src/browser/vsx-extension.tsx +704 -675
- package/src/browser/vsx-extensions-contribution.ts +361 -327
- package/src/browser/vsx-extensions-model.ts +436 -389
- package/src/browser/vsx-extensions-preferences.ts +58 -0
- package/src/browser/vsx-extensions-search-bar.tsx +107 -69
- package/src/browser/vsx-extensions-search-model.ts +61 -61
- package/src/browser/vsx-extensions-source.ts +83 -83
- package/src/browser/vsx-extensions-view-container.ts +179 -179
- package/src/browser/vsx-extensions-widget.tsx +165 -156
- package/src/browser/vsx-language-quick-pick-service.ts +110 -110
- package/src/browser/vsx-registry-frontend-module.ts +108 -106
- package/src/common/index.ts +19 -19
- package/src/common/ovsx-client-provider.ts +35 -35
- package/src/common/vsx-environment.ts +27 -27
- package/src/common/vsx-extension-uri.ts +20 -20
- package/src/common/vsx-registry-common-module.ts +63 -63
- package/src/node/vsx-cli.ts +38 -38
- package/src/node/vsx-environment-impl.ts +50 -50
- package/src/node/vsx-extension-resolver.ts +125 -125
- package/src/node/vsx-registry-backend-module.ts +35 -35
- package/src/package.spec.ts +29 -29
|
@@ -1,157 +1,165 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2020 TypeFox 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-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
-
};
|
|
23
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
-
};
|
|
26
|
-
var VSXExtensionsWidget_1;
|
|
27
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.VSXExtensionsWidget = exports.generateExtensionWidgetId = exports.VSXExtensionsWidgetOptions = void 0;
|
|
29
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
30
|
-
const source_tree_1 = require("@theia/core/lib/browser/source-tree");
|
|
31
|
-
const vsx_extensions_source_1 = require("./vsx-extensions-source");
|
|
32
|
-
const nls_1 = require("@theia/core/lib/common/nls");
|
|
33
|
-
const common_1 = require("@theia/core/lib/common");
|
|
34
|
-
const alert_message_1 = require("@theia/core/lib/browser/widgets/alert-message");
|
|
35
|
-
const React = require("@theia/core/shared/react");
|
|
36
|
-
let VSXExtensionsWidgetOptions = class VSXExtensionsWidgetOptions extends vsx_extensions_source_1.VSXExtensionsSourceOptions {
|
|
37
|
-
};
|
|
38
|
-
VSXExtensionsWidgetOptions = __decorate([
|
|
39
|
-
(0, inversify_1.injectable)()
|
|
40
|
-
], VSXExtensionsWidgetOptions);
|
|
41
|
-
exports.VSXExtensionsWidgetOptions = VSXExtensionsWidgetOptions;
|
|
42
|
-
const generateExtensionWidgetId = (widgetId) => VSXExtensionsWidget.ID + ':' + widgetId;
|
|
43
|
-
exports.generateExtensionWidgetId = generateExtensionWidgetId;
|
|
44
|
-
let VSXExtensionsWidget = VSXExtensionsWidget_1 = class VSXExtensionsWidget extends source_tree_1.SourceTreeWidget {
|
|
45
|
-
constructor() {
|
|
46
|
-
super(...arguments);
|
|
47
|
-
this.onDidChangeBadgeEmitter = new common_1.Emitter();
|
|
48
|
-
this.onDidChangeBadgeTooltipEmitter = new common_1.Emitter();
|
|
49
|
-
}
|
|
50
|
-
static createWidget(parent, options) {
|
|
51
|
-
const child = source_tree_1.SourceTreeWidget.createContainer(parent, {
|
|
52
|
-
virtualized: false,
|
|
53
|
-
scrollIfActive: true
|
|
54
|
-
});
|
|
55
|
-
child.bind(vsx_extensions_source_1.VSXExtensionsSourceOptions).toConstantValue(options);
|
|
56
|
-
child.bind(vsx_extensions_source_1.VSXExtensionsSource).toSelf();
|
|
57
|
-
child.unbind(source_tree_1.SourceTreeWidget);
|
|
58
|
-
child.bind(VSXExtensionsWidgetOptions).toConstantValue(options);
|
|
59
|
-
child.bind(VSXExtensionsWidget_1).toSelf();
|
|
60
|
-
return child.get(VSXExtensionsWidget_1);
|
|
61
|
-
}
|
|
62
|
-
init() {
|
|
63
|
-
var _a;
|
|
64
|
-
super.init();
|
|
65
|
-
this.addClass('theia-vsx-extensions');
|
|
66
|
-
this.id = (0, exports.generateExtensionWidgetId)(this.options.id);
|
|
67
|
-
this.toDispose.push(this.extensionsSource);
|
|
68
|
-
this.source = this.extensionsSource;
|
|
69
|
-
const title = (_a = this.options.title) !== null && _a !== void 0 ? _a : this.computeTitle();
|
|
70
|
-
this.title.label = title;
|
|
71
|
-
this.title.caption = title;
|
|
72
|
-
this.toDispose.push(this.source.onDidChange(async () => {
|
|
73
|
-
this.badge = await this.resolveCount();
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
get onDidChangeBadge() {
|
|
77
|
-
return this.onDidChangeBadgeEmitter.event;
|
|
78
|
-
}
|
|
79
|
-
get badge() {
|
|
80
|
-
return this._badge;
|
|
81
|
-
}
|
|
82
|
-
set badge(count) {
|
|
83
|
-
this._badge = count;
|
|
84
|
-
this.onDidChangeBadgeEmitter.fire();
|
|
85
|
-
}
|
|
86
|
-
get onDidChangeBadgeTooltip() {
|
|
87
|
-
return this.onDidChangeBadgeTooltipEmitter.event;
|
|
88
|
-
}
|
|
89
|
-
get badgeTooltip() {
|
|
90
|
-
return this._badgeTooltip;
|
|
91
|
-
}
|
|
92
|
-
set badgeTooltip(tooltip) {
|
|
93
|
-
this._badgeTooltip = tooltip;
|
|
94
|
-
this.onDidChangeBadgeTooltipEmitter.fire();
|
|
95
|
-
}
|
|
96
|
-
computeTitle() {
|
|
97
|
-
switch (this.options.id) {
|
|
98
|
-
case vsx_extensions_source_1.VSXExtensionsSourceOptions.INSTALLED:
|
|
99
|
-
return nls_1.nls.localizeByDefault('Installed');
|
|
100
|
-
case vsx_extensions_source_1.VSXExtensionsSourceOptions.BUILT_IN:
|
|
101
|
-
return nls_1.nls.localizeByDefault('Built-in');
|
|
102
|
-
case vsx_extensions_source_1.VSXExtensionsSourceOptions.RECOMMENDED:
|
|
103
|
-
return nls_1.nls.localizeByDefault('Recommended');
|
|
104
|
-
case vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT:
|
|
105
|
-
return 'Open VSX Registry';
|
|
106
|
-
default:
|
|
107
|
-
return '';
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
async resolveCount() {
|
|
111
|
-
var _a;
|
|
112
|
-
if (this.options.id !== vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
113
|
-
const elements = await ((_a = this.source) === null || _a === void 0 ? void 0 : _a.getElements()) || [];
|
|
114
|
-
return [...elements].length;
|
|
115
|
-
}
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
tapNode(node) {
|
|
119
|
-
super.tapNode(node);
|
|
120
|
-
this.model.openNode(node);
|
|
121
|
-
}
|
|
122
|
-
handleDblClickEvent() {
|
|
123
|
-
// Don't open the editor view on a double click.
|
|
124
|
-
}
|
|
125
|
-
renderTree(model) {
|
|
126
|
-
if (this.options.id === vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
127
|
-
const searchError = this.extensionsSource.getModel().searchError;
|
|
128
|
-
if (!!searchError) {
|
|
129
|
-
const message = nls_1.nls.localize('theia/vsx-registry/errorFetching', 'Error fetching extensions.');
|
|
130
|
-
const configurationHint = nls_1.nls.localize('theia/vsx-registry/errorFetchingConfigurationHint', 'This could be caused by network configuration issues.');
|
|
131
|
-
const hint = searchError.includes('ENOTFOUND') ? configurationHint : '';
|
|
132
|
-
return React.createElement(alert_message_1.AlertMessage, { type: 'ERROR', header: `${message} ${searchError} ${hint}` });
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return super.renderTree(model);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
__decorate([
|
|
148
|
-
(0, inversify_1.
|
|
149
|
-
__metadata("design:type",
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2020 TypeFox 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-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
var VSXExtensionsWidget_1;
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.VSXExtensionsWidget = exports.generateExtensionWidgetId = exports.VSXExtensionsWidgetOptions = void 0;
|
|
29
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
30
|
+
const source_tree_1 = require("@theia/core/lib/browser/source-tree");
|
|
31
|
+
const vsx_extensions_source_1 = require("./vsx-extensions-source");
|
|
32
|
+
const nls_1 = require("@theia/core/lib/common/nls");
|
|
33
|
+
const common_1 = require("@theia/core/lib/common");
|
|
34
|
+
const alert_message_1 = require("@theia/core/lib/browser/widgets/alert-message");
|
|
35
|
+
const React = require("@theia/core/shared/react");
|
|
36
|
+
let VSXExtensionsWidgetOptions = class VSXExtensionsWidgetOptions extends vsx_extensions_source_1.VSXExtensionsSourceOptions {
|
|
37
|
+
};
|
|
38
|
+
VSXExtensionsWidgetOptions = __decorate([
|
|
39
|
+
(0, inversify_1.injectable)()
|
|
40
|
+
], VSXExtensionsWidgetOptions);
|
|
41
|
+
exports.VSXExtensionsWidgetOptions = VSXExtensionsWidgetOptions;
|
|
42
|
+
const generateExtensionWidgetId = (widgetId) => VSXExtensionsWidget.ID + ':' + widgetId;
|
|
43
|
+
exports.generateExtensionWidgetId = generateExtensionWidgetId;
|
|
44
|
+
let VSXExtensionsWidget = VSXExtensionsWidget_1 = class VSXExtensionsWidget extends source_tree_1.SourceTreeWidget {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(...arguments);
|
|
47
|
+
this.onDidChangeBadgeEmitter = new common_1.Emitter();
|
|
48
|
+
this.onDidChangeBadgeTooltipEmitter = new common_1.Emitter();
|
|
49
|
+
}
|
|
50
|
+
static createWidget(parent, options) {
|
|
51
|
+
const child = source_tree_1.SourceTreeWidget.createContainer(parent, {
|
|
52
|
+
virtualized: false,
|
|
53
|
+
scrollIfActive: true
|
|
54
|
+
});
|
|
55
|
+
child.bind(vsx_extensions_source_1.VSXExtensionsSourceOptions).toConstantValue(options);
|
|
56
|
+
child.bind(vsx_extensions_source_1.VSXExtensionsSource).toSelf();
|
|
57
|
+
child.unbind(source_tree_1.SourceTreeWidget);
|
|
58
|
+
child.bind(VSXExtensionsWidgetOptions).toConstantValue(options);
|
|
59
|
+
child.bind(VSXExtensionsWidget_1).toSelf();
|
|
60
|
+
return child.get(VSXExtensionsWidget_1);
|
|
61
|
+
}
|
|
62
|
+
init() {
|
|
63
|
+
var _a;
|
|
64
|
+
super.init();
|
|
65
|
+
this.addClass('theia-vsx-extensions');
|
|
66
|
+
this.id = (0, exports.generateExtensionWidgetId)(this.options.id);
|
|
67
|
+
this.toDispose.push(this.extensionsSource);
|
|
68
|
+
this.source = this.extensionsSource;
|
|
69
|
+
const title = (_a = this.options.title) !== null && _a !== void 0 ? _a : this.computeTitle();
|
|
70
|
+
this.title.label = title;
|
|
71
|
+
this.title.caption = title;
|
|
72
|
+
this.toDispose.push(this.source.onDidChange(async () => {
|
|
73
|
+
this.badge = await this.resolveCount();
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
get onDidChangeBadge() {
|
|
77
|
+
return this.onDidChangeBadgeEmitter.event;
|
|
78
|
+
}
|
|
79
|
+
get badge() {
|
|
80
|
+
return this._badge;
|
|
81
|
+
}
|
|
82
|
+
set badge(count) {
|
|
83
|
+
this._badge = count;
|
|
84
|
+
this.onDidChangeBadgeEmitter.fire();
|
|
85
|
+
}
|
|
86
|
+
get onDidChangeBadgeTooltip() {
|
|
87
|
+
return this.onDidChangeBadgeTooltipEmitter.event;
|
|
88
|
+
}
|
|
89
|
+
get badgeTooltip() {
|
|
90
|
+
return this._badgeTooltip;
|
|
91
|
+
}
|
|
92
|
+
set badgeTooltip(tooltip) {
|
|
93
|
+
this._badgeTooltip = tooltip;
|
|
94
|
+
this.onDidChangeBadgeTooltipEmitter.fire();
|
|
95
|
+
}
|
|
96
|
+
computeTitle() {
|
|
97
|
+
switch (this.options.id) {
|
|
98
|
+
case vsx_extensions_source_1.VSXExtensionsSourceOptions.INSTALLED:
|
|
99
|
+
return nls_1.nls.localizeByDefault('Installed');
|
|
100
|
+
case vsx_extensions_source_1.VSXExtensionsSourceOptions.BUILT_IN:
|
|
101
|
+
return nls_1.nls.localizeByDefault('Built-in');
|
|
102
|
+
case vsx_extensions_source_1.VSXExtensionsSourceOptions.RECOMMENDED:
|
|
103
|
+
return nls_1.nls.localizeByDefault('Recommended');
|
|
104
|
+
case vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT:
|
|
105
|
+
return 'Open VSX Registry';
|
|
106
|
+
default:
|
|
107
|
+
return '';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async resolveCount() {
|
|
111
|
+
var _a;
|
|
112
|
+
if (this.options.id !== vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
113
|
+
const elements = await ((_a = this.source) === null || _a === void 0 ? void 0 : _a.getElements()) || [];
|
|
114
|
+
return [...elements].length;
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
tapNode(node) {
|
|
119
|
+
super.tapNode(node);
|
|
120
|
+
this.model.openNode(node);
|
|
121
|
+
}
|
|
122
|
+
handleDblClickEvent() {
|
|
123
|
+
// Don't open the editor view on a double click.
|
|
124
|
+
}
|
|
125
|
+
renderTree(model) {
|
|
126
|
+
if (this.options.id === vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
127
|
+
const searchError = this.extensionsSource.getModel().searchError;
|
|
128
|
+
if (!!searchError) {
|
|
129
|
+
const message = nls_1.nls.localize('theia/vsx-registry/errorFetching', 'Error fetching extensions.');
|
|
130
|
+
const configurationHint = nls_1.nls.localize('theia/vsx-registry/errorFetchingConfigurationHint', 'This could be caused by network configuration issues.');
|
|
131
|
+
const hint = searchError.includes('ENOTFOUND') ? configurationHint : '';
|
|
132
|
+
return React.createElement(alert_message_1.AlertMessage, { type: 'ERROR', header: `${message} ${searchError} ${hint}` });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return super.renderTree(model);
|
|
136
|
+
}
|
|
137
|
+
onAfterShow(msg) {
|
|
138
|
+
super.onAfterShow(msg);
|
|
139
|
+
if (this.options.id === vsx_extensions_source_1.VSXExtensionsSourceOptions.INSTALLED) {
|
|
140
|
+
// This is needed when an Extension was installed outside of the extension view.
|
|
141
|
+
// E.g. using explorer context menu.
|
|
142
|
+
this.doUpdateRows();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
VSXExtensionsWidget.ID = 'vsx-extensions';
|
|
147
|
+
__decorate([
|
|
148
|
+
(0, inversify_1.inject)(VSXExtensionsWidgetOptions),
|
|
149
|
+
__metadata("design:type", VSXExtensionsWidgetOptions)
|
|
150
|
+
], VSXExtensionsWidget.prototype, "options", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
(0, inversify_1.inject)(vsx_extensions_source_1.VSXExtensionsSource),
|
|
153
|
+
__metadata("design:type", vsx_extensions_source_1.VSXExtensionsSource)
|
|
154
|
+
], VSXExtensionsWidget.prototype, "extensionsSource", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
(0, inversify_1.postConstruct)(),
|
|
157
|
+
__metadata("design:type", Function),
|
|
158
|
+
__metadata("design:paramtypes", []),
|
|
159
|
+
__metadata("design:returntype", void 0)
|
|
160
|
+
], VSXExtensionsWidget.prototype, "init", null);
|
|
161
|
+
VSXExtensionsWidget = VSXExtensionsWidget_1 = __decorate([
|
|
162
|
+
(0, inversify_1.injectable)()
|
|
163
|
+
], VSXExtensionsWidget);
|
|
164
|
+
exports.VSXExtensionsWidget = VSXExtensionsWidget;
|
|
157
165
|
//# sourceMappingURL=vsx-extensions-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extensions-widget.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.tsx"],"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,gFAAgF;AAChF,gFAAgF;;;;;;;;;;;;;AAEhF,4DAA6F;AAE7F,qEAAuE;AACvE,mEAA0F;AAC1F,oDAAiD;AAEjD,mDAAwD;AACxD,iFAA6E;AAC7E,kDAAkD;AAGlD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,kDAA0B;CAEzE,CAAA;AAFY,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CAEtC;AAFY,gEAA0B;AAIhC,MAAM,yBAAyB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;AAAlG,QAAA,yBAAyB,6BAAyE;AAG/G,IAAa,mBAAmB,2BAAhC,MAAa,mBAAoB,SAAQ,8BAAgB;IAAzD;;QAkBc,4BAAuB,GAAG,IAAI,gBAAO,EAAQ,CAAC;QAG9C,mCAA8B,GAAG,IAAI,gBAAO,EAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"vsx-extensions-widget.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { LanguageQuickPickItem, LanguageQuickPickService } from '@theia/core/lib/browser/i18n/language-quick-pick-service';
|
|
2
|
-
import { RequestService } from '@theia/core/shared/@theia/request';
|
|
3
|
-
import { LanguageInfo } from '@theia/core/lib/common/i18n/localization';
|
|
4
|
-
import { PluginServer } from '@theia/plugin-ext';
|
|
5
|
-
import { OVSXClientProvider } from '../common/ovsx-client-provider';
|
|
6
|
-
import { VSXSearchEntry } from '@theia/ovsx-client';
|
|
7
|
-
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
8
|
-
export declare class VSXLanguageQuickPickService extends LanguageQuickPickService {
|
|
9
|
-
protected readonly clientProvider: OVSXClientProvider;
|
|
10
|
-
protected readonly requestService: RequestService;
|
|
11
|
-
protected readonly pluginServer: PluginServer;
|
|
12
|
-
protected readonly messageService: MessageService;
|
|
13
|
-
protected getAvailableLanguages(): Promise<LanguageQuickPickItem[]>;
|
|
14
|
-
protected loadExtensionLanguages(extension: VSXSearchEntry): Promise<LanguageInfo[]>;
|
|
15
|
-
}
|
|
1
|
+
import { LanguageQuickPickItem, LanguageQuickPickService } from '@theia/core/lib/browser/i18n/language-quick-pick-service';
|
|
2
|
+
import { RequestService } from '@theia/core/shared/@theia/request';
|
|
3
|
+
import { LanguageInfo } from '@theia/core/lib/common/i18n/localization';
|
|
4
|
+
import { PluginServer } from '@theia/plugin-ext';
|
|
5
|
+
import { OVSXClientProvider } from '../common/ovsx-client-provider';
|
|
6
|
+
import { VSXSearchEntry } from '@theia/ovsx-client';
|
|
7
|
+
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
8
|
+
export declare class VSXLanguageQuickPickService extends LanguageQuickPickService {
|
|
9
|
+
protected readonly clientProvider: OVSXClientProvider;
|
|
10
|
+
protected readonly requestService: RequestService;
|
|
11
|
+
protected readonly pluginServer: PluginServer;
|
|
12
|
+
protected readonly messageService: MessageService;
|
|
13
|
+
protected getAvailableLanguages(): Promise<LanguageQuickPickItem[]>;
|
|
14
|
+
protected loadExtensionLanguages(extension: VSXSearchEntry): Promise<LanguageInfo[]>;
|
|
15
|
+
}
|
|
16
16
|
//# sourceMappingURL=vsx-language-quick-pick-service.d.ts.map
|
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// *****************************************************************************
|
|
3
|
-
// Copyright (C) 2022 TypeFox 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-only WITH Classpath-exception-2.0
|
|
16
|
-
// *****************************************************************************
|
|
17
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
-
};
|
|
23
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.VSXLanguageQuickPickService = void 0;
|
|
28
|
-
const language_quick_pick_service_1 = require("@theia/core/lib/browser/i18n/language-quick-pick-service");
|
|
29
|
-
const request_1 = require("@theia/core/shared/@theia/request");
|
|
30
|
-
const inversify_1 = require("@theia/core/shared/inversify");
|
|
31
|
-
const plugin_ext_1 = require("@theia/plugin-ext");
|
|
32
|
-
const ovsx_client_provider_1 = require("../common/ovsx-client-provider");
|
|
33
|
-
const plugin_vscode_uri_1 = require("@theia/plugin-ext-vscode/lib/common/plugin-vscode-uri");
|
|
34
|
-
const nls_1 = require("@theia/core/lib/common/nls");
|
|
35
|
-
const message_service_1 = require("@theia/core/lib/common/message-service");
|
|
36
|
-
let VSXLanguageQuickPickService = class VSXLanguageQuickPickService extends language_quick_pick_service_1.LanguageQuickPickService {
|
|
37
|
-
async getAvailableLanguages() {
|
|
38
|
-
const client = await this.clientProvider();
|
|
39
|
-
const searchResult = await client.search({
|
|
40
|
-
category: 'Language Packs',
|
|
41
|
-
sortBy: 'downloadCount',
|
|
42
|
-
sortOrder: 'desc',
|
|
43
|
-
size: 20
|
|
44
|
-
});
|
|
45
|
-
if (searchResult.error) {
|
|
46
|
-
throw new Error('Error while loading available languages: ' + searchResult.error);
|
|
47
|
-
}
|
|
48
|
-
const extensionLanguages = await Promise.all(searchResult.extensions.map(async (extension) => ({
|
|
49
|
-
extension,
|
|
50
|
-
languages: await this.loadExtensionLanguages(extension)
|
|
51
|
-
})));
|
|
52
|
-
const languages = new Map();
|
|
53
|
-
for (const extension of extensionLanguages) {
|
|
54
|
-
for (const localizationContribution of extension.languages) {
|
|
55
|
-
if (!languages.has(localizationContribution.languageId)) {
|
|
56
|
-
languages.set(localizationContribution.languageId, {
|
|
57
|
-
...this.createLanguageQuickPickItem(localizationContribution),
|
|
58
|
-
execute: async () => {
|
|
59
|
-
var _a, _b;
|
|
60
|
-
const progress = await this.messageService.showProgress({
|
|
61
|
-
text: nls_1.nls.localizeByDefault('Installing {0} language support...', (_b = (_a = localizationContribution.localizedLanguageName) !== null && _a !== void 0 ? _a : localizationContribution.languageName) !== null && _b !== void 0 ? _b : localizationContribution.languageId),
|
|
62
|
-
});
|
|
63
|
-
try {
|
|
64
|
-
const extensionUri = plugin_vscode_uri_1.VSCodeExtensionUri.toUri(extension.extension.name, extension.extension.namespace).toString();
|
|
65
|
-
await this.pluginServer.deploy(extensionUri);
|
|
66
|
-
}
|
|
67
|
-
finally {
|
|
68
|
-
progress.cancel();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return Array.from(languages.values());
|
|
76
|
-
}
|
|
77
|
-
async loadExtensionLanguages(extension) {
|
|
78
|
-
var _a, _b;
|
|
79
|
-
// When searching for extensions on ovsx, we don't receive the `manifest` property.
|
|
80
|
-
// This property is only set when querying a specific extension.
|
|
81
|
-
// To improve performance, we assume that a manifest exists at `/package.json`.
|
|
82
|
-
const downloadUrl = extension.files.download;
|
|
83
|
-
const parentUrl = downloadUrl.substring(0, downloadUrl.lastIndexOf('/'));
|
|
84
|
-
const manifestUrl = parentUrl + '/package.json';
|
|
85
|
-
try {
|
|
86
|
-
const manifestRequest = await this.requestService.request({ url: manifestUrl });
|
|
87
|
-
const manifestContent = request_1.RequestContext.asJson(manifestRequest);
|
|
88
|
-
const localizations = (_b = (_a = manifestContent.contributes) === null || _a === void 0 ? void 0 : _a.localizations) !== null && _b !== void 0 ? _b : [];
|
|
89
|
-
return localizations.map(e => ({
|
|
90
|
-
languageId: e.languageId,
|
|
91
|
-
languageName: e.languageName,
|
|
92
|
-
localizedLanguageName: e.localizedLanguageName,
|
|
93
|
-
languagePack: true
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
// The `package.json` file might not actually exist, simply return an empty array
|
|
98
|
-
return [];
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
__decorate([
|
|
103
|
-
(0, inversify_1.inject)(ovsx_client_provider_1.OVSXClientProvider),
|
|
104
|
-
__metadata("design:type", Function)
|
|
105
|
-
], VSXLanguageQuickPickService.prototype, "clientProvider", void 0);
|
|
106
|
-
__decorate([
|
|
107
|
-
(0, inversify_1.inject)(request_1.RequestService),
|
|
108
|
-
__metadata("design:type", Object)
|
|
109
|
-
], VSXLanguageQuickPickService.prototype, "requestService", void 0);
|
|
110
|
-
__decorate([
|
|
111
|
-
(0, inversify_1.inject)(plugin_ext_1.PluginServer),
|
|
112
|
-
__metadata("design:type", Object)
|
|
113
|
-
], VSXLanguageQuickPickService.prototype, "pluginServer", void 0);
|
|
114
|
-
__decorate([
|
|
115
|
-
(0, inversify_1.inject)(message_service_1.MessageService),
|
|
116
|
-
__metadata("design:type", message_service_1.MessageService)
|
|
117
|
-
], VSXLanguageQuickPickService.prototype, "messageService", void 0);
|
|
118
|
-
VSXLanguageQuickPickService = __decorate([
|
|
119
|
-
(0, inversify_1.injectable)()
|
|
120
|
-
], VSXLanguageQuickPickService);
|
|
121
|
-
exports.VSXLanguageQuickPickService = VSXLanguageQuickPickService;
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 TypeFox 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-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.VSXLanguageQuickPickService = void 0;
|
|
28
|
+
const language_quick_pick_service_1 = require("@theia/core/lib/browser/i18n/language-quick-pick-service");
|
|
29
|
+
const request_1 = require("@theia/core/shared/@theia/request");
|
|
30
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
31
|
+
const plugin_ext_1 = require("@theia/plugin-ext");
|
|
32
|
+
const ovsx_client_provider_1 = require("../common/ovsx-client-provider");
|
|
33
|
+
const plugin_vscode_uri_1 = require("@theia/plugin-ext-vscode/lib/common/plugin-vscode-uri");
|
|
34
|
+
const nls_1 = require("@theia/core/lib/common/nls");
|
|
35
|
+
const message_service_1 = require("@theia/core/lib/common/message-service");
|
|
36
|
+
let VSXLanguageQuickPickService = class VSXLanguageQuickPickService extends language_quick_pick_service_1.LanguageQuickPickService {
|
|
37
|
+
async getAvailableLanguages() {
|
|
38
|
+
const client = await this.clientProvider();
|
|
39
|
+
const searchResult = await client.search({
|
|
40
|
+
category: 'Language Packs',
|
|
41
|
+
sortBy: 'downloadCount',
|
|
42
|
+
sortOrder: 'desc',
|
|
43
|
+
size: 20
|
|
44
|
+
});
|
|
45
|
+
if (searchResult.error) {
|
|
46
|
+
throw new Error('Error while loading available languages: ' + searchResult.error);
|
|
47
|
+
}
|
|
48
|
+
const extensionLanguages = await Promise.all(searchResult.extensions.map(async (extension) => ({
|
|
49
|
+
extension,
|
|
50
|
+
languages: await this.loadExtensionLanguages(extension)
|
|
51
|
+
})));
|
|
52
|
+
const languages = new Map();
|
|
53
|
+
for (const extension of extensionLanguages) {
|
|
54
|
+
for (const localizationContribution of extension.languages) {
|
|
55
|
+
if (!languages.has(localizationContribution.languageId)) {
|
|
56
|
+
languages.set(localizationContribution.languageId, {
|
|
57
|
+
...this.createLanguageQuickPickItem(localizationContribution),
|
|
58
|
+
execute: async () => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const progress = await this.messageService.showProgress({
|
|
61
|
+
text: nls_1.nls.localizeByDefault('Installing {0} language support...', (_b = (_a = localizationContribution.localizedLanguageName) !== null && _a !== void 0 ? _a : localizationContribution.languageName) !== null && _b !== void 0 ? _b : localizationContribution.languageId),
|
|
62
|
+
});
|
|
63
|
+
try {
|
|
64
|
+
const extensionUri = plugin_vscode_uri_1.VSCodeExtensionUri.toUri(extension.extension.name, extension.extension.namespace).toString();
|
|
65
|
+
await this.pluginServer.deploy(extensionUri);
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
progress.cancel();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return Array.from(languages.values());
|
|
76
|
+
}
|
|
77
|
+
async loadExtensionLanguages(extension) {
|
|
78
|
+
var _a, _b;
|
|
79
|
+
// When searching for extensions on ovsx, we don't receive the `manifest` property.
|
|
80
|
+
// This property is only set when querying a specific extension.
|
|
81
|
+
// To improve performance, we assume that a manifest exists at `/package.json`.
|
|
82
|
+
const downloadUrl = extension.files.download;
|
|
83
|
+
const parentUrl = downloadUrl.substring(0, downloadUrl.lastIndexOf('/'));
|
|
84
|
+
const manifestUrl = parentUrl + '/package.json';
|
|
85
|
+
try {
|
|
86
|
+
const manifestRequest = await this.requestService.request({ url: manifestUrl });
|
|
87
|
+
const manifestContent = request_1.RequestContext.asJson(manifestRequest);
|
|
88
|
+
const localizations = (_b = (_a = manifestContent.contributes) === null || _a === void 0 ? void 0 : _a.localizations) !== null && _b !== void 0 ? _b : [];
|
|
89
|
+
return localizations.map(e => ({
|
|
90
|
+
languageId: e.languageId,
|
|
91
|
+
languageName: e.languageName,
|
|
92
|
+
localizedLanguageName: e.localizedLanguageName,
|
|
93
|
+
languagePack: true
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// The `package.json` file might not actually exist, simply return an empty array
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, inversify_1.inject)(ovsx_client_provider_1.OVSXClientProvider),
|
|
104
|
+
__metadata("design:type", Function)
|
|
105
|
+
], VSXLanguageQuickPickService.prototype, "clientProvider", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, inversify_1.inject)(request_1.RequestService),
|
|
108
|
+
__metadata("design:type", Object)
|
|
109
|
+
], VSXLanguageQuickPickService.prototype, "requestService", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, inversify_1.inject)(plugin_ext_1.PluginServer),
|
|
112
|
+
__metadata("design:type", Object)
|
|
113
|
+
], VSXLanguageQuickPickService.prototype, "pluginServer", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, inversify_1.inject)(message_service_1.MessageService),
|
|
116
|
+
__metadata("design:type", message_service_1.MessageService)
|
|
117
|
+
], VSXLanguageQuickPickService.prototype, "messageService", void 0);
|
|
118
|
+
VSXLanguageQuickPickService = __decorate([
|
|
119
|
+
(0, inversify_1.injectable)()
|
|
120
|
+
], VSXLanguageQuickPickService);
|
|
121
|
+
exports.VSXLanguageQuickPickService = VSXLanguageQuickPickService;
|
|
122
122
|
//# sourceMappingURL=vsx-language-quick-pick-service.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import '../../src/browser/style/index.css';
|
|
2
|
-
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
3
|
-
declare const _default: ContainerModule;
|
|
4
|
-
export default _default;
|
|
1
|
+
import '../../src/browser/style/index.css';
|
|
2
|
+
import { ContainerModule } from '@theia/core/shared/inversify';
|
|
3
|
+
declare const _default: ContainerModule;
|
|
4
|
+
export default _default;
|
|
5
5
|
//# sourceMappingURL=vsx-registry-frontend-module.d.ts.map
|