@codingame/monaco-vscode-extension-gallery-service-override 3.2.2 → 4.0.0
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/extensionGallery.js +7 -1
- package/override/vs/platform/dialogs/common/dialogs.js +2 -0
- package/package.json +9 -9
- package/vscode/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.js +18 -16
- package/vscode/src/vs/platform/extensionManagement/common/extensionGalleryService.js +24 -23
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementIpc.js +5 -2
- package/vscode/src/vs/platform/extensionManagement/common/extensionTipsService.js +10 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +33 -19
- package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/deprecatedExtensionsChecker.js +8 -5
- package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +109 -40
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +11 -8
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +31 -11
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +35 -21
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +54 -29
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsList.js +6 -6
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +11 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +18 -17
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +71 -31
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +63 -20
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +551 -134
- package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extension.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +78 -4
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js +7 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionsProfileScannerService.js +24 -0
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +15 -8
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementChannelClient.js +2 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementServerService.js +3 -2
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +469 -57
- package/vscode/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.js +5 -2
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/extensionIgnoredRecommendationsService.js +1 -0
- package/vscode/src/vs/workbench/services/extensions/browser/extensionsScannerService.js +33 -0
|
@@ -40,7 +40,7 @@ let FileBasedRecommendations = class FileBasedRecommendations extends ExtensionR
|
|
|
40
40
|
})
|
|
41
41
|
.forEach(extensionId => {
|
|
42
42
|
recommendations.push({
|
|
43
|
-
extensionId,
|
|
43
|
+
extension: extensionId,
|
|
44
44
|
reason: {
|
|
45
45
|
reasonId: 1 ,
|
|
46
46
|
reasonText: ( localizeWithPath(
|
|
@@ -54,10 +54,10 @@ let FileBasedRecommendations = class FileBasedRecommendations extends ExtensionR
|
|
|
54
54
|
return recommendations;
|
|
55
55
|
}
|
|
56
56
|
get importantRecommendations() {
|
|
57
|
-
return this.recommendations.filter(e => ( this.fileBasedImportantRecommendations.has(e.
|
|
57
|
+
return this.recommendations.filter(e => ( this.fileBasedImportantRecommendations.has(e.extension)));
|
|
58
58
|
}
|
|
59
59
|
get otherRecommendations() {
|
|
60
|
-
return this.recommendations.filter(e => !( this.fileBasedImportantRecommendations.has(e.
|
|
60
|
+
return this.recommendations.filter(e => !( this.fileBasedImportantRecommendations.has(e.extension)));
|
|
61
61
|
}
|
|
62
62
|
constructor(extensionsWorkbenchService, modelService, languageService, productService, storageService, extensionRecommendationNotificationService, extensionIgnoredRecommendationsService, workspaceContextService) {
|
|
63
63
|
super();
|
|
@@ -12,7 +12,7 @@ let KeymapRecommendations = class KeymapRecommendations extends ExtensionRecomme
|
|
|
12
12
|
async doActivate() {
|
|
13
13
|
if (this.productService.keymapExtensionTips) {
|
|
14
14
|
this._recommendations = ( this.productService.keymapExtensionTips.map(extensionId => ({
|
|
15
|
-
|
|
15
|
+
extension: extensionId.toLowerCase(),
|
|
16
16
|
reason: {
|
|
17
17
|
reasonId: 6 ,
|
|
18
18
|
reasonText: ''
|
|
@@ -12,7 +12,7 @@ let LanguageRecommendations = class LanguageRecommendations extends ExtensionRec
|
|
|
12
12
|
async doActivate() {
|
|
13
13
|
if (this.productService.languageExtensionTips) {
|
|
14
14
|
this._recommendations = ( this.productService.languageExtensionTips.map(extensionId => ({
|
|
15
|
-
|
|
15
|
+
extension: extensionId.toLowerCase(),
|
|
16
16
|
reason: {
|
|
17
17
|
reasonId: 6 ,
|
|
18
18
|
reasonText: ''
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
2
|
|
|
3
|
-
var css = ".extension-bookmark-container{position:relative}.extension-bookmark-container>.extension-bookmark{position:absolute}.extension-list-item{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 0 0 16px;width:100%}.extension-list-item>.icon-container{align-items:center;display:flex;position:relative}.extension-list-item>.icon-container>.icon{flex-shrink:0;height:42px;object-fit:contain;padding-right:14px;width:42px}.extension-list-item>.icon-container .extension-badge{bottom:5px;position:absolute}.extension-list-item>.icon-container .extension-badge.extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:22px;justify-content:center;line-height:22px;right:5px;width:22px}.extension-list-item>.icon-container .extension-remote-badge .codicon{color:currentColor}.extension-list-item>.details{display:flex;flex:1;flex-direction:column;justify-content:center;overflow:hidden}.extension-list-item>.details>.header-container{display:flex;height:19px;overflow:hidden;padding-right:11px}.extension-list-item>.details>.header-container>.header{align-items:center;display:flex;flex:1;flex-wrap:nowrap;min-width:0;overflow:hidden}.extension-list-item>.details>.header-container>.header>.name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-list-item.deprecated>.details>.header-container>.header>.name{text-decoration:line-through}.extension-list-item>.details>.header-container>.header>.activation-status,.extension-list-item>.details>.header-container>.header>.install-count,.extension-list-item>.details>.header-container>.header>.ratings{align-items:center;display:flex}.extension-list-item>.details>.header-container>.header>.install-count:not(:empty){font-size:80%;margin:0 6px}.extension-list-item>.details>.header-container>.header>.activation-status:not(:empty){font-size:80%;margin-left:2px}.extension-list-item>.details>.header-container>.header>.activation-status .activationTime,.extension-list-item>.details>.header-container>.header>.activation-status:not(:empty) .codicon{margin-right:2px}.extension-list-item>.details>.header-container>.header .codicon{font-size:120%;margin-right:3px;-webkit-mask:inherit}.extension-list-item>.details>.header-container>.header>.ratings{text-align:right}.extension-list-item>.details>.header-container>.header>.extension-remote-badge-container{display:none;margin-left:6px}.extension-list-item>.details>.header-container>.header .extension-remote-badge .codicon{margin-right:0}.extension-list-item>.details>.header-container>.header .extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:14px;justify-content:center;line-height:14px;text-align:center;width:14px}.extension-list-item>.details>.header-container>.header .extension-remote-badge>.codicon{color:currentColor;font-size:12px}.extension-list-item>.details>.header-container>.header .sync-ignored{display:flex}.extension-list-item>.details>.header-container>.header .sync-ignored>.codicon{font-size:100%}.extension-list-item>.details>.description{color:var(--vscode-descriptionForeground);line-height:normal;padding-right:11px}.hc-black .extension-list-item>.details>.description,.hc-light .extension-list-item>.details>.description,.monaco-list-row.selected .extension-list-item>.details>.description{color:unset}.extension-list-item>.details>.footer{align-items:center;display:flex;height:24px;justify-content:flex-end;overflow:hidden;padding-right:7px}.extension-list-item>.details>.footer>.author{align-items:center;display:flex;flex:1;line-height:24px}.extension-list-item>.details>.footer>.author>.publisher-name{color:var(--vscode-descriptionForeground);font-size:90%;font-weight:600}.monaco-list-row.disabled .extension-list-item>.details>.footer>.author>.publisher-name{color:var(--vscode-disabledForeground)}.monaco-list-row.disabled.selected .extension-list-item>.details>.footer>.author>.publisher-name,.monaco-list-row.selected .extension-list-item>.details>.footer>.author>.publisher-name{color:unset}.extension-list-item>.details>.footer>.author>.publisher-name:not(:first-child){padding-left:1px}.extension-list-item .ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-list-item>.details>.footer>.monaco-action-bar>.actions-container
|
|
3
|
+
var css = ".extension-bookmark-container{position:relative}.extension-bookmark-container>.extension-bookmark{position:absolute}.extension-list-item{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 0 0 16px;width:100%}.extension-list-item>.icon-container{align-items:center;display:flex;position:relative}.extension-list-item>.icon-container>.icon{flex-shrink:0;height:42px;object-fit:contain;padding-right:14px;width:42px}.extension-list-item>.icon-container .extension-badge{bottom:5px;position:absolute}.extension-list-item>.icon-container .extension-badge.extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:22px;justify-content:center;line-height:22px;right:5px;width:22px}.extension-list-item>.icon-container .extension-remote-badge .codicon{color:currentColor}.extension-list-item>.details{display:flex;flex:1;flex-direction:column;justify-content:center;overflow:hidden}.extension-list-item>.details>.header-container{display:flex;height:19px;overflow:hidden;padding-right:11px}.extension-list-item>.details>.header-container>.header{align-items:center;display:flex;flex:1;flex-wrap:nowrap;min-width:0;overflow:hidden}.extension-list-item>.details>.header-container>.header>.name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-list-item.deprecated>.details>.header-container>.header>.name{text-decoration:line-through}.extension-list-item>.details>.header-container>.header>.activation-status,.extension-list-item>.details>.header-container>.header>.install-count,.extension-list-item>.details>.header-container>.header>.ratings{align-items:center;display:flex}.extension-list-item>.details>.header-container>.header>.install-count:not(:empty){font-size:80%;margin:0 6px}.extension-list-item>.details>.header-container>.header>.activation-status:not(:empty){font-size:80%;margin-left:2px}.extension-list-item>.details>.header-container>.header>.activation-status .activationTime,.extension-list-item>.details>.header-container>.header>.activation-status:not(:empty) .codicon{margin-right:2px}.extension-list-item>.details>.header-container>.header .codicon{font-size:120%;margin-right:3px;-webkit-mask:inherit}.extension-list-item>.details>.header-container>.header>.ratings{text-align:right}.extension-list-item>.details>.header-container>.header>.extension-remote-badge-container{display:none;margin-left:6px}.extension-list-item>.details>.header-container>.header .extension-remote-badge .codicon{margin-right:0}.extension-list-item>.details>.header-container>.header .extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:14px;justify-content:center;line-height:14px;text-align:center;width:14px}.extension-list-item>.details>.header-container>.header .extension-remote-badge>.codicon{color:currentColor;font-size:12px}.extension-list-item>.details>.header-container>.header .sync-ignored{display:flex}.extension-list-item>.details>.header-container>.header .sync-ignored>.codicon{font-size:100%}.extension-list-item>.details>.description{color:var(--vscode-descriptionForeground);line-height:normal;padding-right:11px}.hc-black .extension-list-item>.details>.description,.hc-light .extension-list-item>.details>.description,.monaco-list-row.selected .extension-list-item>.details>.description{color:unset}.extension-list-item>.details>.footer{align-items:center;display:flex;height:24px;justify-content:flex-end;overflow:hidden;padding-right:7px}.extension-list-item>.details>.footer>.author{align-items:center;display:flex;flex:1;line-height:24px}.extension-list-item>.details>.footer>.author>.publisher-name{color:var(--vscode-descriptionForeground);font-size:90%;font-weight:600}.monaco-list-row.disabled .extension-list-item>.details>.footer>.author>.publisher-name{color:var(--vscode-disabledForeground)}.monaco-list-row.disabled.selected .extension-list-item>.details>.footer>.author>.publisher-name,.monaco-list-row.selected .extension-list-item>.details>.footer>.author>.publisher-name{color:unset}.extension-list-item>.details>.footer>.author>.publisher-name:not(:first-child){padding-left:1px}.extension-list-item .ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-list-item>.details>.footer>.monaco-action-bar>.actions-container .action-label:not(.icon){border-radius:2px}.extension-list-item>.details>.footer>.monaco-action-bar>.actions-container .extension-action.label{line-height:16px;max-width:150px}.extension-list-item .footer .monaco-action-bar .action-item.action-dropdown-item.empty>.action-label{margin-right:4px}.extension-list-item .footer .monaco-action-bar .action-item.action-dropdown-item.empty>.action-dropdown-item-separator{display:none}.extension-list-item .monaco-action-bar>.actions-container>.action-item.disabled{min-width:0}.monaco-list-row.disabled .extension-list-item{color:var(--vscode-disabledForeground)}.monaco-list-row.disabled.selected .extension-list-item .details .description,.monaco-list-row.disabled.selected .extension-list-item .details .header .name{color:unset}.extension-list-item .monaco-action-bar .action-label.icon{padding:1px 2px}.hc-black .extension-list-item .monaco-action-bar .action-label.icon,.hc-light .extension-list-item .monaco-action-bar .action-label.icon{padding:0 2px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item,.extension-list-item .monaco-action-bar>.actions-container>.action-item:not(.action-dropdown-item)>.extension-action{margin-left:6px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.extension-action.label{border-right-width:0}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator{height:16px;margin-top:2px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator>div{height:10px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action.label{border-left-width:0}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.extension-action{border-radius:2px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.extension-action.label:not(.dropdown){border-radius:2px 0 0 2px}.extension-list-item .monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action{border-radius:0 2px 2px 0}";
|
|
4
4
|
n(css,{});
|
|
5
5
|
|
|
6
6
|
export { css, css as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
2
|
|
|
3
|
-
var css = ".extension-editor{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:80%;overflow:hidden}.extension-editor .clickable{cursor:pointer}.extension-editor>.header{display:flex;font-size:14px;overflow:hidden;padding:20px 20px 14px}.extension-editor>.header>.icon-container{position:relative}.extension-editor>.header>.icon-container .icon{height:128px;object-fit:contain;width:128px}.extension-editor>.header>.icon-container .extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:38px;justify-content:center;line-height:38px;position:absolute;right:0;text-align:center;top:88px;width:38px}.extension-editor>.header>.icon-container .extension-remote-badge .codicon{color:currentColor;font-size:28px}.extension-editor>.header>.details{overflow:hidden;padding-left:20px;user-select:text;-webkit-user-select:text}.extension-editor>.header>.details>.title{align-items:center;display:flex}.extension-editor>.header>.details>.title>.name{flex:0;font-size:26px;font-weight:600;line-height:30px;white-space:nowrap}.extension-editor>.header>.details>.title>.name.deprecated{text-decoration:line-through}.extension-editor>.header>.details>.title>.version{margin-left:10px;user-select:text;-webkit-user-select:text;white-space:nowrap}.extension-editor>.header>.details>.title>.builtin{font-size:10px;font-style:italic;margin-left:10px}.extension-editor>.header>.details>.title>.pre-release{align-items:center;background-color:var(--vscode-extensionIcon-preReleaseForeground);border-radius:4px;color:#fff;display:flex;margin-left:10px;padding:0 4px}.extension-editor>.header>.details>.title>.pre-release>.codicon.codicon-extensions-pre-release{color:#fff;font-size:14px}.extension-editor>.header>.details>.title>.pre-release>.pre-release-text{font-size:10px;padding-left:3px}.monaco-workbench.vs .extension-editor>.header>.details>.title>.preview{color:#fff}.extension-editor>.header>.details>.title>.preview{background:#d63f26;border-radius:4px;font-size:10px;font-style:italic;margin-left:10px;padding:0 4px;user-select:none;-webkit-user-select:none}.extension-editor>.header>.details>.subtitle{height:20px;line-height:20px;padding-top:6px;white-space:nowrap}.extension-editor>.header>.details>.subtitle .hide{display:none}.extension-editor>.header>.details>.subtitle .publisher{align-items:center;display:flex}.extension-editor>.header>.details>.subtitle .publisher .verified-publisher:not(:empty){margin-left:4px}.extension-editor>.header>.details>.subtitle,.extension-editor>.header>.details>.subtitle .install,.extension-editor>.header>.details>.subtitle .rating,.extension-editor>.header>.details>.subtitle .sponsor{align-items:center;display:flex}.extension-editor>.header>.details>.subtitle .sponsor .codicon{padding-right:3px}.extension-editor>.header>.details>.subtitle .install>.count{margin-left:6px}.extension-editor>.header>.details>.subtitle>div:not(:first-child):not(:empty){border-left:1px solid hsla(0,0%,50%,.7);margin-left:14px;padding-left:14px}.extension-editor>.header>.details>.description{margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-editor>.header>.details>.actions-status-container{display:flex;margin-top:10px}.extension-editor>.header>.details>.actions-status-container.list-layout{display:inherit}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar{text-align:initial}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item{flex-shrink:0;margin-right:0;overflow:hidden}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.disabled{min-width:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item .extension-action{margin-bottom:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action:not(.icon){margin-left:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action.action-dropdown{margin-right:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item:not(.checkbox-action-item) .extension-action:not(.icon){border-radius:0;padding-bottom:0;padding-top:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action.action-dropdown,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action{line-height:22px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.checkbox-action-item,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item:not(.action-dropdown-item):not(.checkbox-action-item)>.extension-action{margin-right:6px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.checkbox-action-item>.extension-action{height:18px;margin-top:2px;width:18px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item .extension-action.label,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action.label{font-weight:600;max-width:300px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.extension-action.label{border-right-width:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator{height:22px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator>div{height:16px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.extension-action.label{margin-right:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.action-dropdown-item-separator{display:none}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.extension-action.label,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action.label{border-radius:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.extension-action.label{border-radius:2px 0 0 2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.monaco-dropdown .extension-action.label{border-left-width:0;border-radius:0 2px 2px 0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.action-label.extension-status{margin-right:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.disable-status,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.extension-status-label{font-weight:400}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.disable-status:hover,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.extension-status-label:hover{opacity:.9}.extension-editor>.header>.details>.actions-status-container>.status{font-size:90%;line-height:22px;margin-top:3px}.extension-editor>.header>.details>.actions-status-container.list-layout>.status{margin-top:5px}.extension-editor>.header>.details>.actions-status-container>.status .codicon{vertical-align:text-bottom}.extension-editor>.header>.details>.actions-status-container>.status p,.extension-editor>.header>.details>.pre-release-text p{margin-bottom:0;margin-top:0}.extension-editor>.header>.details>.actions-status-container>.status a,.extension-editor>.header>.details>.pre-release-text a{color:var(--vscode-textLink-foreground)}.extension-editor>.header>.details>.actions-status-container>.status a:hover,.extension-editor>.header>.details>.pre-release-text a:hover{color:var(--vscode-textLink-activeForeground);text-decoration:underline}.extension-editor>.header>.details>.actions-status-container>.status a:active,.extension-editor>.header>.details>.pre-release-text a:active{color:var(--vscode-textLink-activeForeground)}.extension-editor>.header>.details>.pre-release-text:not(:empty){display:flex;font-size:90%;margin-top:5px}.extension-editor>.header>.details>.recommendation{display:flex;margin-top:5px}.extension-editor>.header>.details>.recommendation .codicon{font-size:inherit;margin-right:5px}.extension-editor>.header>.details>.recommendation .recommendation-text{font-size:90%;vertical-align:text-bottom}.extension-editor>.body{flex:1;overflow:hidden}.extension-editor>.body>.navbar{border-bottom:1px solid var(--vscode-panelSection-border);font-size:14px;font-weight:700;height:36px;line-height:36px;padding-left:20px}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container{justify-content:normal}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item{height:100%}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label{background:none!important;border-radius:0!important;color:var(--vscode-panelTitle-inactiveForeground);font-size:11px;font-weight:400;padding:0 10px;text-transform:uppercase}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label.checked{border-bottom:1px solid var(--vscode-panelTitle-activeBorder);color:var(--vscode-panelTitle-activeForeground)}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label:hover{color:var(--vscode-panelTitle-activeForeground)}.extension-editor>.body>.content{height:calc(100% - 36px);overflow:hidden;position:relative;user-select:text;-webkit-user-select:text}.extension-editor>.body>.content.loading{background:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCI+PHN0eWxlPmNpcmNsZXthbmltYXRpb246YmFsbCAuNnMgbGluZWFyIGluZmluaXRlfWNpcmNsZTpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi4wNzVzfWNpcmNsZTpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4xNXN9Y2lyY2xlOm50aC1jaGlsZCg0KXthbmltYXRpb24tZGVsYXk6LjIyNXN9Y2lyY2xlOm50aC1jaGlsZCg1KXthbmltYXRpb24tZGVsYXk6LjNzfWNpcmNsZTpudGgtY2hpbGQoNil7YW5pbWF0aW9uLWRlbGF5Oi4zNzVzfWNpcmNsZTpudGgtY2hpbGQoNyl7YW5pbWF0aW9uLWRlbGF5Oi40NXN9Y2lyY2xlOm50aC1jaGlsZCg4KXthbmltYXRpb24tZGVsYXk6LjUyNXN9PC9zdHlsZT48Y2lyY2xlIGN4PSI1IiBjeT0iMSIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSI3LjgyOCIgY3k9IjIuMTcyIiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjxjaXJjbGUgY3g9IjkiIGN5PSI1IiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjxjaXJjbGUgY3g9IjcuODI4IiBjeT0iNy44MjgiIHI9IjEiIHN0eWxlPSJvcGFjaXR5Oi4zIi8+PGNpcmNsZSBjeD0iNSIgY3k9IjkiIHI9IjEiIHN0eWxlPSJvcGFjaXR5Oi4zIi8+PGNpcmNsZSBjeD0iMi4xNzIiIGN5PSI3LjgyOCIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSIxIiBjeT0iNSIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSIyLjE3MiIgY3k9IjIuMTcyIiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjwvc3ZnPg==\") 50% no-repeat}.extension-editor>.body>.content>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.nocontent{margin-left:20px}.extension-editor>.body>.content>.details{display:flex;height:100%}.extension-editor>.body>.content>.details>.readme-container{flex:1;height:100%;margin:0 auto;max-width:75%}.extension-editor>.body>.content>.details.narrow>.readme-container{margin:inherit;max-width:inherit}.extension-editor>.body>.content>.details>.additional-details-container{height:100%;min-width:175px;width:25%}.extension-editor>.body>.content>.details.narrow>.additional-details-container{display:none}.extension-editor>.body>.content>.details>.additional-details-container>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.details>.additional-details-container>.monaco-scrollable-element>.additional-details-content{box-sizing:border-box;height:100%;overflow-y:scroll;padding:20px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element:not(:first-child){padding-top:15px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element{padding-bottom:15px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element:not(:last-child){border-bottom:1px solid hsla(0,0%,50%,.22)}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element>.additional-details-title{font-size:120%;padding-bottom:15px}.extension-editor>.body>.content>.details>.additional-details-container .categories-container>.categories>.category,.extension-editor>.body>.content>.details>.additional-details-container .tags-container>.tags>.tag{border:1px solid hsla(0,0%,53%,.45);border-radius:2px;cursor:pointer;display:inline-block;font-size:90%;margin:0 6px 3px 0;padding:2px 4px}.extension-editor>.body>.content>.details>.additional-details-container .resources-container>.resources>.resource{cursor:pointer;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-editor>.body>.content>.details>.additional-details-container .resources-container>.resources>.resource:hover{text-decoration:underline}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry{display:grid;font-size:90%;gap:6px;grid-template-columns:40% 60%;padding:2px 4px}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry:nth-child(odd){background-color:hsla(0,0%,51%,.04)}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry code{background-color:transparent;padding:0}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme{height:100%}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack{height:224px;padding-left:20px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.one-row>.extension-pack{height:142px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.two-rows>.extension-pack{height:224px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.three-rows>.extension-pack{height:306px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.more-rows>.extension-pack{height:326px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.one-row>.readme-content{height:calc(100% - 142px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.two-rows>.readme-content{height:calc(100% - 224px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.three-rows>.readme-content{height:calc(100% - 306px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.more-rows>.readme-content{height:calc(100% - 326px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.footer,.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.header{border-bottom:1px solid hsla(0,0%,50%,.22);font-size:120%;font-weight:700;line-height:22px;margin-bottom:10px;margin-right:30px;padding:4px 6px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content{height:calc(100% - 60px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content>.monaco-scrollable-element>.subcontent{box-sizing:border-box;height:100%;overflow-y:scroll}.extension-editor>.body>.content>.monaco-scrollable-element>.subcontent{box-sizing:border-box;height:100%;overflow-y:scroll;padding:20px}.extension-editor>.body>.content table{border-collapse:separate;border-spacing:0;width:100%}.extension-editor>.body>.content details:not(:first-child){margin-top:20px}.extension-editor>.body>.content details>summary{border-bottom:1px solid hsla(0,0%,50%,.22);cursor:pointer;font-size:120%;font-weight:700;line-height:22px;margin-bottom:10px;padding:3px 6px}.extension-editor>.body>.content table tr:nth-child(odd){background-color:hsla(0,0%,51%,.04)}.extension-editor>.body>.content table tr:not(:first-child):hover{background-color:hsla(0,0%,50%,.15)}.extension-editor>.body>.content table td,.extension-editor>.body>.content table th{padding:2px 16px 2px 4px}.extension-editor>.body>.content table td{vertical-align:top}.extension-editor>.body>.content table td:last-child,.extension-editor>.body>.content table th:last-child{padding:2px 4px}.extension-editor>.body>.content table th{text-align:left;word-break:keep-all}.extension-editor>.body>.content table td>div,.extension-editor>.body>.content table td>div>p{margin:0;padding:0}.extension-editor code:not(:empty){background-color:hsla(0,0%,50%,.17);border-radius:4px;font-family:var(--monaco-monospace-font);font-size:90%;padding:1px 4px}.extension-editor>.body>.content table .colorBox{border:.1em solid #000;box-sizing:border-box;display:inline-block;height:.8em;margin:0 .2em;vertical-align:middle;width:.8em}.monaco-workbench.hc-black .extension-editor>.body>.content table .colorBox,.monaco-workbench.vs-dark .extension-editor>.body>.content table .colorBox{border-color:#eee}.extension-editor .subcontent .monaco-list-row .content .unknown-extension{line-height:62px}.extension-editor .subcontent .monaco-list-row .content .unknown-extension>.error-marker{background-color:#be1100;color:#ccc;font-size:11px;font-weight:700;padding:2px 4px}.extension-editor .subcontent .monaco-list-row .unknown-extension>.message{font-size:14px;font-weight:700;padding-left:10px}.extension-editor .subcontent .monaco-list-row .extension{align-items:center;display:flex}.extension-editor .subcontent .monaco-list-row .extension>.details{flex:1;overflow:hidden;padding-left:10px}.extension-editor .subcontent .monaco-list-row .extension>.details>.header{align-items:center;display:flex;line-height:19px;overflow:hidden}.extension-editor .subcontent .monaco-list-row .extension>.icon{height:40px;object-fit:contain;width:40px}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.name{font-size:16px;font-weight:700}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.name:hover{text-decoration:underline}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.identifier{background:hsla(0,0%,68%,.31);border-radius:4px;font-size:90%;margin-left:10px;opacity:.6;padding:0 4px}.extension-editor .subcontent .monaco-list-row .extension>.details>.footer{display:flex;line-height:19px;overflow:hidden;padding-top:5px}.extension-editor .subcontent .monaco-list-row .extension>.details>.footer>.author{font-size:90%;font-weight:600;opacity:.6}.extension-editor .extensions-grid-view{display:flex;flex-wrap:wrap}.extension-editor .extensions-grid-view>.extension-container{margin:0 10px 20px 0;width:350px}.extension-editor .extensions-grid-view .extension-list-item{cursor:default}.extension-editor .extensions-grid-view .extension-list-item>.details .header>.name{cursor:pointer}.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.install-count,.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.ratings,.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.version{display:none}.extension-editor .extensions-grid-view>.extension-container:focus>.extension-list-item>.details .header>.name,.extension-editor .extensions-grid-view>.extension-container:hover>.extension-list-item>.details .header>.name{text-decoration:underline}.monaco-workbench.vs .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.details>.header-container .codicon,.monaco-workbench.vs .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.icon-container>.icon,.monaco-workbench.vs-dark .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.details>.header-container .codicon,.monaco-workbench.vs-dark .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.icon-container>.icon{opacity:.5}.extension-editor>.body>.content .runtime-status .activation-details>.activation-element-entry>.activation-message-title{padding-right:10px}.extension-editor>.body>.content .runtime-status .message-entry{align-items:center;display:flex;margin:5px}.extension-editor>.body>.content .runtime-status .message-entry .codicon{padding-right:2px}.monaco-workbench .extension-editor>.header>.details>.recommendation .codicon{color:var(--vscode-extensionButton-prominentBackground)}.extension-editor .subcontent.feature-contributions{margin-top:14px}.extension-editor .subcontent.feature-contributions .features-list-container{height:100%}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper{height:100%;padding-left:24px}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item{align-items:center;display:flex;padding-left:10px;padding-right:10px}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-label{flex:1}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-disabled-label{font-size:12px;opacity:.8}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-status{padding-left:5px}.extension-editor .subcontent.feature-contributions .feature-view-container{height:100%}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body-content .feature-description{margin-bottom:10px}.extension-editor .subcontent.feature-contributions .extension-feature-content{box-sizing:border-box;height:100%;padding-left:24px}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-header{align-items:center;display:flex;line-height:20px;margin:0 10px 10px 0}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-header>.feature-title{box-sizing:border-box;display:inline-block;flex:1;font-size:26px;font-weight:600;height:100%;margin:0;overflow:hidden;padding:10px 10px 10px 0;position:relative;text-overflow:ellipsis}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .feature-body{height:calc(100% - 50px)}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .monaco-scrollable-element{height:100%}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .feature-body .feature-body-content{box-sizing:border-box;height:100%;overflow-y:scroll}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body .feature-body-content .feature-status{align-items:center;display:flex}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body .feature-body-content .feature-content.markdown .codicon{vertical-align:sub}";
|
|
3
|
+
var css = ".extension-editor{display:flex;flex-direction:column;height:100%;margin:0 auto;max-width:80%;overflow:hidden}.extension-editor .clickable{cursor:pointer}.extension-editor>.header{display:flex;font-size:14px;overflow:hidden;padding:20px 20px 14px}.extension-editor>.header>.icon-container{position:relative}.extension-editor>.header>.icon-container .icon{height:128px;object-fit:contain;width:128px}.extension-editor>.header>.icon-container .extension-remote-badge{align-items:center;border-radius:20px;display:flex;height:38px;justify-content:center;line-height:38px;position:absolute;right:0;text-align:center;top:88px;width:38px}.extension-editor>.header>.icon-container .extension-remote-badge .codicon{color:currentColor;font-size:28px}.extension-editor>.header>.details{overflow:hidden;padding-left:20px;user-select:text;-webkit-user-select:text}.extension-editor>.header>.details>.title{align-items:center;display:flex}.extension-editor>.header>.details>.title>.name{flex:0;font-size:26px;font-weight:600;line-height:30px;white-space:nowrap}.extension-editor>.header>.details>.title>.name.deprecated{text-decoration:line-through}.extension-editor>.header>.details>.title>.version{margin-left:10px;user-select:text;-webkit-user-select:text;white-space:nowrap}.extension-editor>.header>.details>.title>.builtin{font-size:10px;font-style:italic;margin-left:10px}.extension-editor>.header>.details>.title>.pre-release{align-items:center;background-color:var(--vscode-extensionIcon-preReleaseForeground);border-radius:4px;color:#fff;display:flex;margin-left:10px;padding:0 4px}.extension-editor>.header>.details>.title>.pre-release>.codicon.codicon-extensions-pre-release{color:#fff;font-size:14px}.extension-editor>.header>.details>.title>.pre-release>.pre-release-text{font-size:10px;padding-left:3px}.monaco-workbench.vs .extension-editor>.header>.details>.title>.preview{color:#fff}.extension-editor>.header>.details>.title>.preview{background:#d63f26;border-radius:4px;font-size:10px;font-style:italic;margin-left:10px;padding:0 4px;user-select:none;-webkit-user-select:none}.extension-editor>.header>.details>.subtitle{height:20px;line-height:20px;padding-top:6px;white-space:nowrap}.extension-editor>.header>.details>.subtitle .hide{display:none}.extension-editor>.header>.details>.subtitle .publisher{align-items:center;display:flex}.extension-editor>.header>.details>.subtitle .publisher .verified-publisher:not(:empty){margin-left:4px}.extension-editor>.header>.details>.subtitle,.extension-editor>.header>.details>.subtitle .install,.extension-editor>.header>.details>.subtitle .rating,.extension-editor>.header>.details>.subtitle .sponsor{align-items:center;display:flex}.extension-editor>.header>.details>.subtitle .sponsor .codicon{padding-right:3px}.extension-editor>.header>.details>.subtitle .install>.count{margin-left:6px}.extension-editor>.header>.details>.subtitle>div:not(:first-child):not(:empty):not(.resource){border-left:1px solid hsla(0,0%,50%,.7);margin-left:14px;padding-left:14px}.extension-editor>.header>.details>.description{margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-editor>.header>.details>.actions-status-container{display:flex;margin-top:10px}.extension-editor>.header>.details>.actions-status-container.list-layout{display:inherit}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar{text-align:initial}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item{flex-shrink:0;margin-right:0;overflow:hidden}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.disabled{min-width:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item .extension-action{margin-bottom:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action:not(.icon){margin-left:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action.action-dropdown{margin-right:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item:not(.checkbox-action-item) .extension-action:not(.icon){border-radius:0;padding-bottom:0;padding-top:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.monaco-dropdown .extension-action.action-dropdown,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action{line-height:22px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.checkbox-action-item,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item:not(.action-dropdown-item):not(.checkbox-action-item)>.extension-action{margin-right:6px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.checkbox-action-item>.extension-action{height:18px;margin-top:2px;width:18px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item .extension-action.label,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action.label{font-weight:600;max-width:300px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.extension-action.label{border-right-width:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator{height:22px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item>.action-dropdown-item-separator>div{height:16px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.extension-action.label{margin-right:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.action-dropdown-item-separator{display:none}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item.empty>.extension-action.label,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.extension-action.label{border-radius:2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.extension-action.label{border-radius:2px 0 0 2px}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item.action-dropdown-item:not(.empty)>.monaco-dropdown .extension-action.label{border-left-width:0;border-radius:0 2px 2px 0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar>.actions-container>.action-item>.action-label.extension-status{margin-right:0}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.disable-status,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.extension-status-label{font-weight:400}.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.disable-status:hover,.extension-editor>.header>.details>.actions-status-container>.monaco-action-bar .action-item .action-label.extension-status-label:hover{opacity:.9}.extension-editor>.header>.details>.actions-status-container>.status{font-size:90%;line-height:22px;margin-top:3px}.extension-editor>.header>.details>.actions-status-container.list-layout>.status{margin-top:5px}.extension-editor>.header>.details>.actions-status-container>.status .codicon{vertical-align:text-bottom}.extension-editor>.header>.details>.actions-status-container>.status p,.extension-editor>.header>.details>.pre-release-text p{margin-bottom:0;margin-top:0}.extension-editor>.header>.details>.actions-status-container>.status a,.extension-editor>.header>.details>.pre-release-text a{color:var(--vscode-textLink-foreground)}.extension-editor>.header>.details>.actions-status-container>.status a:hover,.extension-editor>.header>.details>.pre-release-text a:hover{color:var(--vscode-textLink-activeForeground);text-decoration:underline}.extension-editor>.header>.details>.actions-status-container>.status a:active,.extension-editor>.header>.details>.pre-release-text a:active{color:var(--vscode-textLink-activeForeground)}.extension-editor>.header>.details>.pre-release-text:not(:empty){display:flex;font-size:90%;margin-top:5px}.extension-editor>.header>.details>.recommendation{display:flex;margin-top:5px}.extension-editor>.header>.details>.recommendation .codicon{font-size:inherit;margin-right:5px}.extension-editor>.header>.details>.recommendation .recommendation-text{font-size:90%;vertical-align:text-bottom}.extension-editor>.body{flex:1;overflow:hidden}.extension-editor>.body>.navbar{border-bottom:1px solid var(--vscode-panelSection-border);font-size:14px;font-weight:700;height:36px;line-height:36px;padding-left:20px}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container{justify-content:normal}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item{height:100%}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label{background:none!important;border-radius:0!important;color:var(--vscode-panelTitle-inactiveForeground);font-size:11px;font-weight:400;padding:0 10px;text-transform:uppercase}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label.checked{border-bottom:1px solid var(--vscode-panelTitle-activeBorder);color:var(--vscode-panelTitle-activeForeground)}.extension-editor>.body>.navbar>.monaco-action-bar>.actions-container>.action-item>.action-label:hover{color:var(--vscode-panelTitle-activeForeground)}.extension-editor>.body>.content{height:calc(100% - 36px);overflow:hidden;position:relative;user-select:text;-webkit-user-select:text}.extension-editor>.body>.content.loading{background:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCI+PHN0eWxlPmNpcmNsZXthbmltYXRpb246YmFsbCAuNnMgbGluZWFyIGluZmluaXRlfWNpcmNsZTpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi4wNzVzfWNpcmNsZTpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4xNXN9Y2lyY2xlOm50aC1jaGlsZCg0KXthbmltYXRpb24tZGVsYXk6LjIyNXN9Y2lyY2xlOm50aC1jaGlsZCg1KXthbmltYXRpb24tZGVsYXk6LjNzfWNpcmNsZTpudGgtY2hpbGQoNil7YW5pbWF0aW9uLWRlbGF5Oi4zNzVzfWNpcmNsZTpudGgtY2hpbGQoNyl7YW5pbWF0aW9uLWRlbGF5Oi40NXN9Y2lyY2xlOm50aC1jaGlsZCg4KXthbmltYXRpb24tZGVsYXk6LjUyNXN9PC9zdHlsZT48Y2lyY2xlIGN4PSI1IiBjeT0iMSIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSI3LjgyOCIgY3k9IjIuMTcyIiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjxjaXJjbGUgY3g9IjkiIGN5PSI1IiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjxjaXJjbGUgY3g9IjcuODI4IiBjeT0iNy44MjgiIHI9IjEiIHN0eWxlPSJvcGFjaXR5Oi4zIi8+PGNpcmNsZSBjeD0iNSIgY3k9IjkiIHI9IjEiIHN0eWxlPSJvcGFjaXR5Oi4zIi8+PGNpcmNsZSBjeD0iMi4xNzIiIGN5PSI3LjgyOCIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSIxIiBjeT0iNSIgcj0iMSIgc3R5bGU9Im9wYWNpdHk6LjMiLz48Y2lyY2xlIGN4PSIyLjE3MiIgY3k9IjIuMTcyIiByPSIxIiBzdHlsZT0ib3BhY2l0eTouMyIvPjwvc3ZnPg==\") 50% no-repeat}.extension-editor>.body>.content>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.nocontent{margin-left:20px}.extension-editor>.body>.content>.details{display:flex;height:100%}.extension-editor>.body>.content>.details>.readme-container{flex:1;height:100%;margin:0 auto;max-width:75%}.extension-editor>.body>.content>.details.narrow>.readme-container{margin:inherit;max-width:inherit}.extension-editor>.body>.content>.details>.additional-details-container{height:100%;min-width:175px;width:25%}.extension-editor>.body>.content>.details.narrow>.additional-details-container{display:none}.extension-editor>.body>.content>.details>.additional-details-container>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.details>.additional-details-container>.monaco-scrollable-element>.additional-details-content{box-sizing:border-box;height:100%;overflow-y:scroll;padding:20px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element:not(:first-child){padding-top:15px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element{padding-bottom:15px}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element:not(:last-child){border-bottom:1px solid hsla(0,0%,50%,.22)}.extension-editor>.body>.content>.details>.additional-details-container .additional-details-element>.additional-details-title{font-size:120%;padding-bottom:15px}.extension-editor>.body>.content>.details>.additional-details-container .categories-container>.categories>.category,.extension-editor>.body>.content>.details>.additional-details-container .tags-container>.tags>.tag{border:1px solid hsla(0,0%,53%,.45);border-radius:2px;cursor:pointer;display:inline-block;font-size:90%;margin:0 6px 3px 0;padding:2px 4px}.extension-editor>.body>.content>.details>.additional-details-container .resources-container>.resources>.resource{cursor:pointer;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extension-editor>.body>.content>.details>.additional-details-container .resources-container>.resources>.resource:hover{text-decoration:underline}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry{display:grid;font-size:90%;gap:6px;grid-template-columns:40% 60%;padding:2px 4px}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry:nth-child(odd){background-color:hsla(0,0%,51%,.04)}.extension-editor>.body>.content>.details>.additional-details-container .more-info-container>.more-info>.more-info-entry code{background-color:transparent;padding:0}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme{height:100%}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack{height:224px;padding-left:20px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.one-row>.extension-pack{height:142px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.two-rows>.extension-pack{height:224px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.three-rows>.extension-pack{height:306px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.more-rows>.extension-pack{height:326px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.one-row>.readme-content{height:calc(100% - 142px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.two-rows>.readme-content{height:calc(100% - 224px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.three-rows>.readme-content{height:calc(100% - 306px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme.more-rows>.readme-content{height:calc(100% - 326px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.footer,.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.header{border-bottom:1px solid hsla(0,0%,50%,.22);font-size:120%;font-weight:700;line-height:22px;margin-bottom:10px;margin-right:30px;padding:4px 6px}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content{height:calc(100% - 60px)}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content>.monaco-scrollable-element{height:100%}.extension-editor>.body>.content>.details>.readme-container>.extension-pack-readme>.extension-pack>.extension-pack-content>.monaco-scrollable-element>.subcontent{box-sizing:border-box;height:100%;overflow-y:scroll}.extension-editor>.body>.content>.monaco-scrollable-element>.subcontent{box-sizing:border-box;height:100%;overflow-y:scroll;padding:20px}.extension-editor>.body>.content table{border-collapse:separate;border-spacing:0;width:100%}.extension-editor>.body>.content details:not(:first-child){margin-top:20px}.extension-editor>.body>.content details>summary{border-bottom:1px solid hsla(0,0%,50%,.22);cursor:pointer;font-size:120%;font-weight:700;line-height:22px;margin-bottom:10px;padding:3px 6px}.extension-editor>.body>.content table tr:nth-child(odd){background-color:hsla(0,0%,51%,.04)}.extension-editor>.body>.content table tr:not(:first-child):hover{background-color:hsla(0,0%,50%,.15)}.extension-editor>.body>.content table td,.extension-editor>.body>.content table th{padding:2px 16px 2px 4px}.extension-editor>.body>.content table td{vertical-align:top}.extension-editor>.body>.content table td:last-child,.extension-editor>.body>.content table th:last-child{padding:2px 4px}.extension-editor>.body>.content table th{text-align:left;word-break:keep-all}.extension-editor>.body>.content table td>div,.extension-editor>.body>.content table td>div>p{margin:0;padding:0}.extension-editor code:not(:empty){background-color:hsla(0,0%,50%,.17);border-radius:4px;font-family:var(--monaco-monospace-font);font-size:90%;padding:1px 4px}.extension-editor>.body>.content table .colorBox{border:.1em solid #000;box-sizing:border-box;display:inline-block;height:.8em;margin:0 .2em;vertical-align:middle;width:.8em}.monaco-workbench.hc-black .extension-editor>.body>.content table .colorBox,.monaco-workbench.vs-dark .extension-editor>.body>.content table .colorBox{border-color:#eee}.extension-editor .subcontent .monaco-list-row .content .unknown-extension{line-height:62px}.extension-editor .subcontent .monaco-list-row .content .unknown-extension>.error-marker{background-color:#be1100;color:#ccc;font-size:11px;font-weight:700;padding:2px 4px}.extension-editor .subcontent .monaco-list-row .unknown-extension>.message{font-size:14px;font-weight:700;padding-left:10px}.extension-editor .subcontent .monaco-list-row .extension{align-items:center;display:flex}.extension-editor .subcontent .monaco-list-row .extension>.details{flex:1;overflow:hidden;padding-left:10px}.extension-editor .subcontent .monaco-list-row .extension>.details>.header{align-items:center;display:flex;line-height:19px;overflow:hidden}.extension-editor .subcontent .monaco-list-row .extension>.icon{height:40px;object-fit:contain;width:40px}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.name{font-size:16px;font-weight:700}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.name:hover{text-decoration:underline}.extension-editor .subcontent .monaco-list-row .extension>.details>.header>.identifier{background:hsla(0,0%,68%,.31);border-radius:4px;font-size:90%;margin-left:10px;opacity:.6;padding:0 4px}.extension-editor .subcontent .monaco-list-row .extension>.details>.footer{display:flex;line-height:19px;overflow:hidden;padding-top:5px}.extension-editor .subcontent .monaco-list-row .extension>.details>.footer>.author{font-size:90%;font-weight:600;opacity:.6}.extension-editor .extensions-grid-view{display:flex;flex-wrap:wrap}.extension-editor .extensions-grid-view>.extension-container{margin:0 10px 20px 0;width:350px}.extension-editor .extensions-grid-view .extension-list-item{cursor:default}.extension-editor .extensions-grid-view .extension-list-item>.details .header>.name{cursor:pointer}.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.install-count,.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.ratings,.extension-editor .extensions-grid-view .extension-list-item>.details>.header-container>.header>.version{display:none}.extension-editor .extensions-grid-view>.extension-container:focus>.extension-list-item>.details .header>.name,.extension-editor .extensions-grid-view>.extension-container:hover>.extension-list-item>.details .header>.name{text-decoration:underline}.monaco-workbench.vs .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.details>.header-container .codicon,.monaco-workbench.vs .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.icon-container>.icon,.monaco-workbench.vs-dark .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.details>.header-container .codicon,.monaco-workbench.vs-dark .extension-editor .extensions-grid-view>.extension-container.disabled>.extension-list-item>.icon-container>.icon{opacity:.5}.extension-editor>.body>.content .runtime-status .activation-details>.activation-element-entry>.activation-message-title{padding-right:10px}.extension-editor>.body>.content .runtime-status .message-entry{align-items:center;display:flex;margin:5px}.extension-editor>.body>.content .runtime-status .message-entry .codicon{padding-right:2px}.monaco-workbench .extension-editor>.header>.details>.recommendation .codicon{color:var(--vscode-extensionButton-prominentBackground)}.extension-editor .subcontent.feature-contributions{margin-top:14px}.extension-editor .subcontent.feature-contributions .features-list-container{height:100%}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper{height:100%;padding-left:24px}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item{align-items:center;display:flex;padding-left:10px;padding-right:10px}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-label{flex:1}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-disabled-label{font-size:12px;opacity:.8}.extension-editor .subcontent.feature-contributions .features-list-container>.features-list-wrapper .monaco-list-row.extension-feature-list-item .extension-feature-status{padding-left:5px}.extension-editor .subcontent.feature-contributions .feature-view-container{height:100%}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body-content .feature-description{margin-bottom:10px}.extension-editor .subcontent.feature-contributions .extension-feature-content{box-sizing:border-box;height:100%;padding-left:24px}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-header{align-items:center;display:flex;line-height:20px;margin:0 10px 10px 0}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-header>.feature-title{box-sizing:border-box;display:inline-block;flex:1;font-size:26px;font-weight:600;height:100%;margin:0;overflow:hidden;padding:10px 10px 10px 0;position:relative;text-overflow:ellipsis}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .feature-body{height:calc(100% - 50px)}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .monaco-scrollable-element{height:100%}.extension-editor .subcontent.feature-contributions .feature-view-container .extension-feature-content .feature-body .feature-body-content{box-sizing:border-box;height:100%;overflow-y:scroll}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body .feature-body-content .feature-status{align-items:center;display:flex}.extension-editor .subcontent.feature-contributions .extension-feature-content .feature-body .feature-body-content .feature-content.markdown .codicon{vertical-align:sub}";
|
|
4
4
|
n(css,{});
|
|
5
5
|
|
|
6
6
|
export { css, css as default };
|
|
@@ -14,7 +14,7 @@ let RemoteRecommendations = class RemoteRecommendations extends ExtensionRecomme
|
|
|
14
14
|
const extensionTips = { ...this.productService.remoteExtensionTips, ...this.productService.virtualWorkspaceExtensionTips };
|
|
15
15
|
const currentPlatform = PlatformToString(platform);
|
|
16
16
|
this._recommendations = ( ( Object.values(extensionTips)).filter(({ supportedPlatforms }) => !supportedPlatforms || supportedPlatforms.includes(currentPlatform)).map(extension => ({
|
|
17
|
-
|
|
17
|
+
extension: extension.extensionId.toLowerCase(),
|
|
18
18
|
reason: {
|
|
19
19
|
reasonId: 6 ,
|
|
20
20
|
reasonText: ''
|
|
@@ -16,7 +16,7 @@ let WebRecommendations = class WebRecommendations extends ExtensionRecommendatio
|
|
|
16
16
|
const isOnlyWeb = this.extensionManagementServerService.webExtensionManagementServer && !this.extensionManagementServerService.localExtensionManagementServer && !this.extensionManagementServerService.remoteExtensionManagementServer;
|
|
17
17
|
if (isOnlyWeb && Array.isArray(this.productService.webExtensionTips)) {
|
|
18
18
|
this._recommendations = ( this.productService.webExtensionTips.map(extensionId => ({
|
|
19
|
-
|
|
19
|
+
extension: extensionId.toLowerCase(),
|
|
20
20
|
reason: {
|
|
21
21
|
reasonId: 6 ,
|
|
22
22
|
reasonText: ( localizeWithPath(
|
|
@@ -1,27 +1,84 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { EXTENSION_IDENTIFIER_PATTERN } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
3
|
-
import { distinct, flatten } from 'vscode/vscode/vs/base/common/arrays';
|
|
3
|
+
import { equals, distinct, flatten } from 'vscode/vscode/vs/base/common/arrays';
|
|
4
4
|
import { ExtensionRecommendations } from './extensionRecommendations.js';
|
|
5
5
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
6
6
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
7
7
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
8
8
|
import { IWorkspaceExtensionsConfigService } from 'vscode/vscode/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig';
|
|
9
|
+
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
10
|
+
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
11
|
+
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
|
|
12
|
+
import { RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
13
|
+
import { IWorkbenchExtensionManagementService } from 'vscode/vscode/vs/workbench/services/extensionManagement/common/extensionManagement';
|
|
9
14
|
|
|
15
|
+
const WORKSPACE_EXTENSIONS_FOLDER = '.vscode/extensions';
|
|
10
16
|
let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionRecommendations {
|
|
11
17
|
get recommendations() { return this._recommendations; }
|
|
12
18
|
get ignoredRecommendations() { return this._ignoredRecommendations; }
|
|
13
|
-
constructor(workspaceExtensionsConfigService, notificationService) {
|
|
19
|
+
constructor(workspaceExtensionsConfigService, contextService, uriIdentityService, fileService, workbenchExtensionManagementService, notificationService) {
|
|
14
20
|
super();
|
|
15
21
|
this.workspaceExtensionsConfigService = workspaceExtensionsConfigService;
|
|
22
|
+
this.contextService = contextService;
|
|
23
|
+
this.uriIdentityService = uriIdentityService;
|
|
24
|
+
this.fileService = fileService;
|
|
25
|
+
this.workbenchExtensionManagementService = workbenchExtensionManagementService;
|
|
16
26
|
this.notificationService = notificationService;
|
|
17
27
|
this._recommendations = [];
|
|
18
28
|
this._onDidChangeRecommendations = this._register(( new Emitter()));
|
|
19
29
|
this.onDidChangeRecommendations = this._onDidChangeRecommendations.event;
|
|
20
30
|
this._ignoredRecommendations = [];
|
|
31
|
+
this.workspaceExtensions = [];
|
|
32
|
+
this.onDidChangeWorkspaceExtensionsScheduler = this._register(( new RunOnceScheduler(() => this.onDidChangeWorkspaceExtensionsFolders(), 1000)));
|
|
21
33
|
}
|
|
22
34
|
async doActivate() {
|
|
35
|
+
this.workspaceExtensions = await this.fetchWorkspaceExtensions();
|
|
23
36
|
await this.fetch();
|
|
24
37
|
this._register(this.workspaceExtensionsConfigService.onDidChangeExtensionsConfigs(() => this.onDidChangeExtensionsConfigs()));
|
|
38
|
+
for (const folder of this.contextService.getWorkspace().folders) {
|
|
39
|
+
this._register(this.fileService.watch(this.uriIdentityService.extUri.joinPath(folder.uri, WORKSPACE_EXTENSIONS_FOLDER)));
|
|
40
|
+
}
|
|
41
|
+
if (this.workbenchExtensionManagementService.isWorkspaceExtensionsSupported()) {
|
|
42
|
+
this._register(this.fileService.onDidFilesChange(e => {
|
|
43
|
+
if (( this.contextService.getWorkspace().folders.some(
|
|
44
|
+
folder => e.affects(this.uriIdentityService.extUri.joinPath(folder.uri, WORKSPACE_EXTENSIONS_FOLDER), 1 , 2 )
|
|
45
|
+
))) {
|
|
46
|
+
this.onDidChangeWorkspaceExtensionsScheduler.schedule();
|
|
47
|
+
}
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async onDidChangeWorkspaceExtensionsFolders() {
|
|
52
|
+
const existing = this.workspaceExtensions;
|
|
53
|
+
this.workspaceExtensions = await this.fetchWorkspaceExtensions();
|
|
54
|
+
if (!equals(existing, this.workspaceExtensions, (a, b) => this.uriIdentityService.extUri.isEqual(a, b))) {
|
|
55
|
+
this.onDidChangeExtensionsConfigs();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async fetchWorkspaceExtensions() {
|
|
59
|
+
if (!this.workbenchExtensionManagementService.isWorkspaceExtensionsSupported()) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
const workspaceExtensions = [];
|
|
63
|
+
for (const workspaceFolder of this.contextService.getWorkspace().folders) {
|
|
64
|
+
const extensionsLocaiton = this.uriIdentityService.extUri.joinPath(workspaceFolder.uri, WORKSPACE_EXTENSIONS_FOLDER);
|
|
65
|
+
try {
|
|
66
|
+
const stat = await this.fileService.resolve(extensionsLocaiton);
|
|
67
|
+
for (const extension of stat.children ?? []) {
|
|
68
|
+
if (!extension.isDirectory) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
workspaceExtensions.push(extension.resource);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (workspaceExtensions.length) {
|
|
78
|
+
const resourceExtensions = await this.workbenchExtensionManagementService.getExtensions(workspaceExtensions);
|
|
79
|
+
return ( resourceExtensions.map(extension => extension.location));
|
|
80
|
+
}
|
|
81
|
+
return [];
|
|
25
82
|
}
|
|
26
83
|
async fetch() {
|
|
27
84
|
const extensionsConfigs = await this.workspaceExtensionsConfigService.getExtensionsConfigs();
|
|
@@ -43,7 +100,7 @@ let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionR
|
|
|
43
100
|
for (const extensionId of extensionsConfig.recommendations) {
|
|
44
101
|
if (invalidRecommendations.indexOf(extensionId) === -1) {
|
|
45
102
|
this._recommendations.push({
|
|
46
|
-
extensionId,
|
|
103
|
+
extension: extensionId,
|
|
47
104
|
reason: {
|
|
48
105
|
reasonId: 0 ,
|
|
49
106
|
reasonText: ( localizeWithPath(
|
|
@@ -57,6 +114,19 @@ let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionR
|
|
|
57
114
|
}
|
|
58
115
|
}
|
|
59
116
|
}
|
|
117
|
+
for (const extension of this.workspaceExtensions) {
|
|
118
|
+
this._recommendations.push({
|
|
119
|
+
extension,
|
|
120
|
+
reason: {
|
|
121
|
+
reasonId: 0 ,
|
|
122
|
+
reasonText: ( localizeWithPath(
|
|
123
|
+
'vs/workbench/contrib/extensions/browser/workspaceRecommendations',
|
|
124
|
+
'workspaceRecommendation',
|
|
125
|
+
"This extension is recommended by users of the current workspace."
|
|
126
|
+
))
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
60
130
|
}
|
|
61
131
|
async validateExtensions(contents) {
|
|
62
132
|
const validExtensions = [];
|
|
@@ -82,7 +152,11 @@ let WorkspaceRecommendations = class WorkspaceRecommendations extends ExtensionR
|
|
|
82
152
|
};
|
|
83
153
|
WorkspaceRecommendations = ( __decorate([
|
|
84
154
|
( __param(0, IWorkspaceExtensionsConfigService)),
|
|
85
|
-
( __param(1,
|
|
155
|
+
( __param(1, IWorkspaceContextService)),
|
|
156
|
+
( __param(2, IUriIdentityService)),
|
|
157
|
+
( __param(3, IFileService)),
|
|
158
|
+
( __param(4, IWorkbenchExtensionManagementService)),
|
|
159
|
+
( __param(5, INotificationService))
|
|
86
160
|
], WorkspaceRecommendations));
|
|
87
161
|
|
|
88
162
|
export { WorkspaceRecommendations };
|
package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionEnablementService.js
CHANGED
|
@@ -370,6 +370,9 @@ let ExtensionEnablementService = class ExtensionEnablementService extends Dispos
|
|
|
370
370
|
if (workspaceType.trusted) {
|
|
371
371
|
return false;
|
|
372
372
|
}
|
|
373
|
+
if (this.contextService.isInsideWorkspace(extension.location)) {
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
373
376
|
return this.extensionManifestPropertiesService.getExtensionUntrustedWorkspaceSupportType(extension.manifest) === false;
|
|
374
377
|
}
|
|
375
378
|
_isDisabledByExtensionDependency(extension, extensions, workspaceType, computedEnablementStates) {
|
|
@@ -589,7 +592,10 @@ let ExtensionsManager = class ExtensionsManager extends Disposable {
|
|
|
589
592
|
}
|
|
590
593
|
async initialize() {
|
|
591
594
|
try {
|
|
592
|
-
this._extensions =
|
|
595
|
+
this._extensions = [
|
|
596
|
+
...(await this.extensionManagementService.getInstalled()),
|
|
597
|
+
...(await this.extensionManagementService.getInstalledWorkspaceExtensions(true))
|
|
598
|
+
];
|
|
593
599
|
if (this.disposed) {
|
|
594
600
|
return;
|
|
595
601
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
+
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
3
|
+
import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile';
|
|
4
|
+
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
5
|
+
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
6
|
+
import { AbstractExtensionsProfileScannerService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionsProfileScannerService';
|
|
7
|
+
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
|
|
8
|
+
import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService';
|
|
9
|
+
|
|
10
|
+
let ExtensionsProfileScannerService = class ExtensionsProfileScannerService extends AbstractExtensionsProfileScannerService {
|
|
11
|
+
constructor(environmentService, fileService, userDataProfilesService, uriIdentityService, telemetryService, logService) {
|
|
12
|
+
super(environmentService.userRoamingDataHome, fileService, userDataProfilesService, uriIdentityService, telemetryService, logService);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
ExtensionsProfileScannerService = ( __decorate([
|
|
16
|
+
( __param(0, IWorkbenchEnvironmentService)),
|
|
17
|
+
( __param(1, IFileService)),
|
|
18
|
+
( __param(2, IUserDataProfilesService)),
|
|
19
|
+
( __param(3, IUriIdentityService)),
|
|
20
|
+
( __param(4, ITelemetryService)),
|
|
21
|
+
( __param(5, ILogService))
|
|
22
|
+
], ExtensionsProfileScannerService));
|
|
23
|
+
|
|
24
|
+
export { ExtensionsProfileScannerService };
|
package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { IBuiltinExtensionsScannerService } from 'vscode/vscode/vs/platform/extensions/common/extensions';
|
|
3
3
|
import { IBrowserWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/browser/environmentService';
|
|
4
|
+
import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
5
|
+
import { IExtensionGalleryService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
6
|
+
import 'vscode/vscode/vs/base/common/network';
|
|
7
|
+
import { localize2WithPath, localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
4
8
|
import { isWeb, Language } from 'vscode/vscode/vs/base/common/platform';
|
|
5
9
|
import { joinPath } from 'vscode/vscode/vs/base/common/resources';
|
|
6
10
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
@@ -9,11 +13,9 @@ import { Queue } from 'vscode/vscode/vs/base/common/async';
|
|
|
9
13
|
import { VSBuffer } from 'vscode/vscode/vs/base/common/buffer';
|
|
10
14
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
11
15
|
import { CancellationToken } from 'vscode/vscode/vs/base/common/cancellation';
|
|
12
|
-
import { IExtensionGalleryService } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
13
16
|
import { areSameExtensions, getExtensionId, getGalleryExtensionId } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
|
|
14
17
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
15
18
|
import { localizeManifest } from 'vscode/vscode/vs/platform/extensionManagement/common/extensionNls';
|
|
16
|
-
import { localize2WithPath, localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
17
19
|
import { semverExports } from '../../../../../../../external/vscode-semver/semver.js';
|
|
18
20
|
import { isString, isUndefined } from 'vscode/vscode/vs/base/common/types';
|
|
19
21
|
import { getErrorMessage } from 'vscode/vscode/vs/base/common/errors';
|
|
@@ -31,7 +33,7 @@ import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle
|
|
|
31
33
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
32
34
|
import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService';
|
|
33
35
|
import { validateExtensionManifest } from 'vscode/vscode/vs/platform/extensions/common/extensionValidator';
|
|
34
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
36
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
35
37
|
import { IUserDataProfileService } from 'vscode/vscode/vs/workbench/services/userDataProfile/common/userDataProfile';
|
|
36
38
|
import { IUserDataProfilesService } from 'vscode/vscode/vs/platform/userDataProfile/common/userDataProfile';
|
|
37
39
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
@@ -311,9 +313,14 @@ let WebExtensionsScannerService = class WebExtensionsScannerService extends Disp
|
|
|
311
313
|
const result = ( new Map());
|
|
312
314
|
const extensionInfos = [];
|
|
313
315
|
await Promise.all(( extensionGalleryResources.map(async (extensionGalleryResource) => {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
316
|
+
try {
|
|
317
|
+
const webExtension = await this.toWebExtensionFromExtensionGalleryResource(extensionGalleryResource);
|
|
318
|
+
result.set(webExtension.identifier.id.toLowerCase(), webExtension);
|
|
319
|
+
extensionInfos.push({ id: webExtension.identifier.id, version: webExtension.version });
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
this.logService.info(`Ignoring additional builtin extension from gallery resource ${( extensionGalleryResource.toString())} because there is an error while converting it into web extension`, getErrorMessage(error));
|
|
323
|
+
}
|
|
317
324
|
})));
|
|
318
325
|
const galleryExtensions = await this.galleryService.getExtensions(extensionInfos, CancellationToken.None);
|
|
319
326
|
for (const galleryExtension of galleryExtensions) {
|
|
@@ -623,7 +630,7 @@ let WebExtensionsScannerService = class WebExtensionsScannerService extends Disp
|
|
|
623
630
|
manifest = await this.getExtensionManifest(webExtension.location);
|
|
624
631
|
}
|
|
625
632
|
catch (error) {
|
|
626
|
-
validations.push([Severity.Error, `Error while fetching manifest from the location '${webExtension.location}'. ${getErrorMessage(error)}`]);
|
|
633
|
+
validations.push([Severity$1.Error, `Error while fetching manifest from the location '${webExtension.location}'. ${getErrorMessage(error)}`]);
|
|
627
634
|
}
|
|
628
635
|
}
|
|
629
636
|
if (!manifest) {
|
|
@@ -647,7 +654,7 @@ let WebExtensionsScannerService = class WebExtensionsScannerService extends Disp
|
|
|
647
654
|
validations.push(...validateExtensionManifest(this.productService.version, this.productService.date, webExtension.location, manifest, false));
|
|
648
655
|
let isValid = true;
|
|
649
656
|
for (const [severity, message] of validations) {
|
|
650
|
-
if (severity === Severity.Error) {
|
|
657
|
+
if (severity === Severity$1.Error) {
|
|
651
658
|
isValid = false;
|
|
652
659
|
this.logService.error(message);
|
|
653
660
|
}
|
|
@@ -63,8 +63,8 @@ class ProfileAwareExtensionManagementChannelClient extends ExtensionManagementCh
|
|
|
63
63
|
options = { ...options, profileLocation: await this.getProfileLocation(options?.profileLocation) };
|
|
64
64
|
return super.uninstall(extension, options);
|
|
65
65
|
}
|
|
66
|
-
async getInstalled(type = null, extensionsProfileResource) {
|
|
67
|
-
return super.getInstalled(type, await this.getProfileLocation(extensionsProfileResource));
|
|
66
|
+
async getInstalled(type = null, extensionsProfileResource, productVersion) {
|
|
67
|
+
return super.getInstalled(type, await this.getProfileLocation(extensionsProfileResource), productVersion);
|
|
68
68
|
}
|
|
69
69
|
async updateMetadata(local, metadata, extensionsProfileResource) {
|
|
70
70
|
return super.updateMetadata(local, metadata, await this.getProfileLocation(extensionsProfileResource));
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
3
|
-
import {
|
|
3
|
+
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
4
|
+
import 'vscode/vscode/vs/platform/extensionManagement/common/extensionManagement';
|
|
4
5
|
import { Schemas } from 'vscode/vscode/vs/base/common/network';
|
|
6
|
+
import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService';
|
|
5
7
|
import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label';
|
|
6
8
|
import { isWeb } from 'vscode/vscode/vs/base/common/platform';
|
|
7
|
-
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
8
9
|
import { WebExtensionManagementService } from './webExtensionManagementService.js';
|
|
9
10
|
import { RemoteExtensionManagementService } from './remoteExtensionManagementService.js';
|
|
10
11
|
|