@codingame/monaco-vscode-api 32.0.0 → 32.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/package.json +8 -8
  2. package/services.js +3 -3
  3. package/vscode/src/vs/base/common/paging.js +66 -2
  4. package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.d.ts +14 -0
  5. package/vscode/src/vs/platform/extensionManagement/common/unsupportedExtensionsMigration.js +145 -0
  6. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.d.ts +19 -0
  7. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.js +25 -0
  8. package/vscode/src/vs/platform/extensionRecommendations/common/extensionRecommendations.service.d.ts +1 -1
  9. package/vscode/src/vs/platform/product/common/product.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.js +12 -12
  11. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsModel.js +1 -1
  12. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +3 -3
  13. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatScreenshotContext.js +1 -1
  14. package/vscode/src/vs/workbench/contrib/chat/browser/chat.js +3 -2
  15. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +7 -7
  16. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionDescription.js +2 -2
  17. package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +43 -43
  18. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +1 -1
  19. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditorInput.js +9 -9
  20. package/vscode/src/vs/workbench/contrib/chat/common/actions/chatContextKeys.js +86 -86
  21. package/vscode/src/vs/workbench/contrib/chat/common/attachments/chatVariableEntries.js +2 -2
  22. package/vscode/src/vs/workbench/contrib/chat/common/chatModes.js +3 -3
  23. package/vscode/src/vs/workbench/contrib/chat/common/customizationHarnessService.js +1 -1
  24. package/vscode/src/vs/workbench/contrib/chat/common/editing/chatEditingService.js +2 -2
  25. package/vscode/src/vs/workbench/contrib/chat/common/languageModelStats.js +3 -3
  26. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +23 -23
  27. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModel.js +7 -7
  28. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +1 -1
  29. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/computeAutomaticInstructions.js +13 -13
  30. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookSchema.js +18 -18
  31. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookTypes.js +20 -20
  32. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptFileAttributes.js +79 -79
  33. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptTypes.js +10 -10
  34. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +3 -3
  35. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +1 -1
  36. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/askQuestionsTool.js +8 -8
  37. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/manageTodoListTool.js +10 -10
  38. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/reviewPlanTool.js +7 -7
  39. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/runSubagentTool.js +2 -2
  40. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactRulesTool.js +3 -3
  41. package/vscode/src/vs/workbench/contrib/chat/common/tools/builtinTools/setArtifactsTool.js +4 -4
  42. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.js +22 -22
  43. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsService.js +3 -3
  44. package/vscode/src/vs/workbench/contrib/chat/common/widget/input/modelPickerWidget.js +1 -1
  45. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +11 -11
  46. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
  47. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
  48. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
  49. package/vscode/src/vs/workbench/contrib/codeEditor/browser/find/simpleFindWidget.js +10 -10
  50. package/vscode/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.js +2 -2
  51. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
  52. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +6 -6
  53. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
  54. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
  55. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +3 -3
  56. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
  57. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +12 -12
  58. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
  59. package/vscode/src/vs/workbench/contrib/codeEditor/common/languageConfigurationExtensionPoint.js +65 -65
  60. package/vscode/src/vs/workbench/contrib/comments/browser/commentColors.js +7 -7
  61. package/vscode/src/vs/workbench/contrib/comments/browser/commentGlyphWidget.js +7 -7
  62. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +2 -2
  63. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +3 -3
  64. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +3 -3
  65. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadHeader.js +3 -3
  66. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +3 -3
  67. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  68. package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
  69. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +7 -7
  70. package/vscode/src/vs/workbench/contrib/comments/browser/commentsModel.js +1 -1
  71. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +9 -9
  72. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +14 -14
  73. package/vscode/src/vs/workbench/contrib/comments/browser/commentsViewActions.js +16 -16
  74. package/vscode/src/vs/workbench/contrib/comments/browser/reactionsAction.js +7 -7
  75. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +12 -12
  76. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorDiffInput.js +2 -2
  77. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInput.js +3 -3
  78. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +1 -1
  79. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +29 -29
  80. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +14 -14
  81. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +75 -75
  82. package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +2 -2
  83. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +6 -6
  84. package/vscode/src/vs/workbench/contrib/debug/browser/debugColors.js +12 -12
  85. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +38 -38
  86. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -2
  87. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -3
  88. package/vscode/src/vs/workbench/contrib/debug/browser/debugIcons.js +57 -57
  89. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -3
  90. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +4 -4
  91. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -2
  92. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -18
  93. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +5 -5
  94. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +9 -9
  95. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
  96. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +65 -65
  97. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +6 -6
  98. package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
  99. package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
  100. package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
  101. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
  102. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/commands.js +2 -2
  103. package/vscode/src/vs/workbench/contrib/dropOrPasteInto/browser/configurationSchema.js +4 -4
  104. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.d.ts +76 -0
  105. package/vscode/src/vs/workbench/contrib/extensions/browser/abstractRuntimeExtensionsEditor.js +470 -0
  106. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.d.ts +25 -0
  107. package/vscode/src/vs/workbench/contrib/extensions/browser/configBasedRecommendations.js +83 -0
  108. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.d.ts +20 -0
  109. package/vscode/src/vs/workbench/contrib/extensions/browser/exeBasedRecommendations.js +66 -0
  110. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.d.ts +83 -0
  111. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEditor.js +1353 -0
  112. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.d.ts +11 -0
  113. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionEnablementWorkspaceTrustTransitionParticipant.js +49 -0
  114. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.d.ts +22 -0
  115. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionFeaturesTab.js +728 -0
  116. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.d.ts +63 -0
  117. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +522 -0
  118. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.d.ts +19 -0
  119. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendations.js +18 -0
  120. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.d.ts +71 -0
  121. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationsService.js +263 -0
  122. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.d.ts +5 -0
  123. package/vscode/src/vs/workbench/contrib/extensions/browser/extensions.contribution.js +2227 -0
  124. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +179 -179
  125. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.d.ts +9 -0
  126. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActivationProgress.js +40 -0
  127. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.d.ts +9 -0
  128. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsCompletionItemsProvider.js +77 -0
  129. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.d.ts +16 -0
  130. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsDependencyChecker.js +93 -0
  131. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsIcons.js +25 -25
  132. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.d.ts +27 -0
  133. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsQuickAccess.js +100 -0
  134. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewer.js +7 -7
  135. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.d.ts +151 -0
  136. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.js +1031 -0
  137. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.d.ts +235 -0
  138. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +1600 -0
  139. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.js +30 -30
  140. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.d.ts +314 -0
  141. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +3449 -0
  142. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.d.ts +44 -0
  143. package/vscode/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.js +368 -0
  144. package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.d.ts +9 -0
  145. package/vscode/src/vs/workbench/contrib/extensions/browser/keymapRecommendations.js +30 -0
  146. package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.d.ts +9 -0
  147. package/vscode/src/vs/workbench/contrib/extensions/browser/languageRecommendations.js +30 -0
  148. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css +910 -0
  149. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionManagement.css +12 -0
  150. package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css +229 -0
  151. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-dark.svg +31 -0
  152. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-hc.svg +31 -0
  153. package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading.svg +31 -0
  154. package/vscode/src/vs/workbench/contrib/extensions/browser/media/runtimeExtensionsEditor.css +86 -0
  155. package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.d.ts +9 -0
  156. package/vscode/src/vs/workbench/contrib/extensions/browser/remoteRecommendations.js +38 -0
  157. package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.d.ts +9 -0
  158. package/vscode/src/vs/workbench/contrib/extensions/browser/unsupportedExtensionsMigrationContribution.js +41 -0
  159. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.d.ts +11 -0
  160. package/vscode/src/vs/workbench/contrib/extensions/browser/webRecommendations.js +38 -0
  161. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.d.ts +33 -0
  162. package/vscode/src/vs/workbench/contrib/extensions/browser/workspaceRecommendations.js +179 -0
  163. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.d.ts +11 -0
  164. package/vscode/src/vs/workbench/contrib/extensions/common/extensionQuery.js +90 -0
  165. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.js +1 -1
  166. package/vscode/src/vs/workbench/contrib/extensions/common/extensions.service.d.ts +1 -1
  167. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +5 -5
  168. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.d.ts +24 -0
  169. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsInput.js +50 -0
  170. package/vscode/src/vs/workbench/contrib/extensions/common/extensionsUtils.js +3 -3
  171. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.d.ts +15 -0
  172. package/vscode/src/vs/workbench/contrib/extensions/common/runtimeExtensionsInput.js +47 -0
  173. package/vscode/src/vs/workbench/contrib/extensions/common/searchExtensionsTool.js +3 -3
  174. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/configuration.js +4 -4
  175. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.js +3 -3
  176. package/vscode/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +1 -1
  177. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditor.js +8 -8
  178. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +18 -18
  179. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +14 -14
  180. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +39 -39
  181. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +84 -84
  182. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands._save.js +4 -4
  183. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +2 -2
  184. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  185. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +28 -28
  186. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._configuration.js +50 -50
  187. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution._editorPane.js +2 -2
  188. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  189. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerDecorationsProvider.js +4 -4
  190. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +7 -7
  191. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +17 -17
  192. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +4 -4
  194. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -1
  195. package/vscode/src/vs/workbench/contrib/files/common/files.js +16 -16
  196. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
  197. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
  198. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
  199. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  200. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
  201. package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
  202. package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
  203. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommandsAddConfiguration.js +66 -66
  204. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +40 -40
  205. package/vscode/src/vs/workbench/contrib/mcp/common/mcpConfiguration.js +42 -42
  206. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +16 -16
  207. package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +4 -4
  208. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
  209. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
  210. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
  211. package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
  212. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnection.contribution.js +8 -8
  213. package/vscode/src/vs/workbench/contrib/meteredConnection/browser/meteredConnectionStatus.js +4 -4
  214. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
  215. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +3 -3
  216. package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +1 -1
  217. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
  218. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
  219. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
  220. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
  221. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
  222. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +7 -7
  223. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
  224. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
  225. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
  226. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
  227. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
  228. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
  229. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
  230. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
  231. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
  232. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
  233. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +4 -4
  234. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
  235. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
  236. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
  237. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
  238. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
  239. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
  240. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
  241. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
  242. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +60 -60
  243. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +3 -3
  244. package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
  245. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +15 -15
  246. package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
  247. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
  248. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
  249. package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
  250. package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
  251. package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +9 -9
  252. package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +3 -3
  253. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
  255. package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
  256. package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
  257. package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
  258. package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
  259. package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
  260. package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +55 -55
  261. package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +11 -11
  262. package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
  263. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
  264. package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
  265. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
  266. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
  267. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
  268. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
  269. package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
  270. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +6 -6
  271. package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
  272. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
  273. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
  274. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
  275. package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +40 -40
  276. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
  277. package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +10 -10
  278. package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
  279. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
  280. package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +2 -2
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChat.js +9 -9
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +72 -72
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +2 -2
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/notification/common/terminalNotificationConfiguration.js +1 -1
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
  293. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  294. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
  295. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
  297. package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
  298. package/vscode/src/vs/workbench/contrib/webview/browser/webviewFindAccessibilityHelp.js +30 -30
  299. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
  300. package/vscode/src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.js +14 -14
  301. package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
  302. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.d.ts +35 -0
  303. package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +876 -0
  304. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
  305. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
  306. package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +16 -16
  307. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
  308. package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
  309. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  310. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +2 -2
  311. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
  312. package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
  313. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
  314. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +88 -88
  315. package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
  316. package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
  317. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  318. package/vscode/src/vs/workbench/services/policies/common/accountPolicyService.js +1 -1
  319. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
  320. package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
  321. package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
  322. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.js +2 -2
  323. package/vscode/src/vs/workbench/services/preferences/common/preferencesValidation.js +30 -30
  324. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  325. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  326. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
  327. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
  328. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
  329. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
  330. package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
  331. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  332. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
  333. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
  334. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
  335. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
  336. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
@@ -0,0 +1,1031 @@
1
+
2
+ import { registerCss } from '../../../../../../../css.js';
3
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
4
+ import * as extensionsViewlet from './media/extensionsViewlet.css';
5
+ import { localize2, localize } from '../../../../nls.js';
6
+ import { Delayer, timeout } from '../../../../base/common/async.js';
7
+ import { isCancellationError } from '../../../../base/common/errors.js';
8
+ import { createErrorWithActions } from '../../../../base/common/errorMessage.js';
9
+ import { Disposable, MutableDisposable, DisposableStore } from '../../../../base/common/lifecycle.js';
10
+ import { Event } from '../../../../base/common/event.js';
11
+ import { Action } from '../../../../base/common/actions.js';
12
+ import { append, $, hide, DragAndDropObserver, show, trackFocus, Dimension, clearNode, addDisposableListener, EventType } from '../../../../base/browser/dom.js';
13
+ import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.service.js';
14
+ import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
15
+ import { IExtensionService } from '../../../services/extensions/common/extensions.service.js';
16
+ import { VIEWLET_ID, DefaultViewsContext, CONTEXT_EXTENSIONS_GALLERY_STATUS, CONTEXT_HAS_GALLERY, OUTDATED_EXTENSIONS_VIEW_ID, WORKSPACE_RECOMMENDATIONS_VIEW_ID, SearchMcpServersContext, SearchAgentPluginsContext, extensionsSearchActionsMenu, INSTALL_EXTENSION_FROM_VSIX_COMMAND_ID, AutoCheckUpdatesConfigurationKey, CloseExtensionDetailsOnViewChangeKey, AutoRestartConfigurationKey, ExtensionRuntimeActionType } from '../common/extensions.js';
17
+ import { IExtensionsWorkbenchService } from '../common/extensions.service.js';
18
+ import { InstallLocalExtensionsInRemoteAction, InstallRemoteExtensionsInLocalAction } from './extensionsActions.js';
19
+ import { IExtensionManagementService } from '../../../../platform/extensionManagement/common/extensionManagement.service.js';
20
+ import { IExtensionManagementServerService, IWorkbenchExtensionEnablementService } from '../../../services/extensionManagement/common/extensionManagement.service.js';
21
+ import { ExtensionsInput } from '../common/extensionsInput.js';
22
+ import { ServerInstalledExtensionsView, DefaultPopularExtensionsView, DefaultRecommendedExtensionsView, EnabledExtensionsView, DisabledExtensionsView, SearchMarketplaceExtensionsView, ExtensionsListView, RecentlyUpdatedExtensionsView, OutdatedExtensionsView, WorkspaceRecommendedExtensionsView, RecommendedExtensionsView, NONE_CATEGORY, StaticQueryExtensionsView, UntrustedWorkspaceUnsupportedExtensionsView, UntrustedWorkspacePartiallySupportedExtensionsView, VirtualWorkspaceUnsupportedExtensionsView, VirtualWorkspacePartiallySupportedExtensionsView, DeprecatedExtensionsView, AbstractExtensionsListView } from './extensionsViews.js';
23
+ import { ProgressLocation } from '../../../../platform/progress/common/progress.js';
24
+ import { IProgressService } from '../../../../platform/progress/common/progress.service.js';
25
+ import { IEditorGroupsService } from '../../../services/editor/common/editorGroupsService.service.js';
26
+ import Severity$1 from '../../../../base/common/severity.js';
27
+ import { WarningBadge, NumberBadge } from '../../../services/activity/common/activity.js';
28
+ import { IActivityService } from '../../../services/activity/common/activity.service.js';
29
+ import { IThemeService } from '../../../../platform/theme/common/themeService.service.js';
30
+ import { IConfigurationService } from '../../../../platform/configuration/common/configuration.service.js';
31
+ import { Extensions, ViewContainerLocation } from '../../../common/views.js';
32
+ import { IViewDescriptorService } from '../../../common/views.service.js';
33
+ import { StorageScope, StorageTarget } from '../../../../platform/storage/common/storage.js';
34
+ import { IStorageService } from '../../../../platform/storage/common/storage.service.js';
35
+ import { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.service.js';
36
+ import { RawContextKey, ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';
37
+ import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.service.js';
38
+ import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.service.js';
39
+ import { ILogService } from '../../../../platform/log/common/log.service.js';
40
+ import { NotificationPriority } from '../../../../platform/notification/common/notification.js';
41
+ import { INotificationService } from '../../../../platform/notification/common/notification.service.js';
42
+ import { IHostService } from '../../../services/host/browser/host.service.js';
43
+ import { IWorkbenchLayoutService } from '../../../services/layout/browser/layoutService.service.js';
44
+ import { ViewPaneContainer } from '../../../browser/parts/views/viewPaneContainer.js';
45
+ import { ViewPane } from '../../../browser/parts/views/viewPane.js';
46
+ import { Query } from '../common/extensionQuery.js';
47
+ import { SuggestEnabledInput } from '../../codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js';
48
+ import { alert } from '../../../../base/browser/ui/aria/aria.js';
49
+ import { EXTENSION_CATEGORIES } from '../../../../platform/extensions/common/extensions.js';
50
+ import { Registry } from '../../../../platform/registry/common/platform.js';
51
+ import { ILabelService } from '../../../../platform/label/common/label.service.js';
52
+ import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js';
53
+ import { IPreferencesService } from '../../../services/preferences/common/preferences.service.js';
54
+ import { SIDE_BAR_DRAG_AND_DROP_BACKGROUND } from '../../../common/theme.js';
55
+ import { WorkbenchStateContext, VirtualWorkspaceContext } from '../../../common/contextkeys.js';
56
+ import { ICommandService } from '../../../../platform/commands/common/commands.service.js';
57
+ import { installLocalInRemoteIcon } from './extensionsIcons.js';
58
+ import { registerAction2, Action2, MenuId } from '../../../../platform/actions/common/actions.js';
59
+ import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.service.js';
60
+ import { coalesce } from '../../../../base/common/arrays.js';
61
+ import { extractEditorsAndFilesDropData } from '../../../../platform/dnd/browser/dnd.js';
62
+ import { extname } from '../../../../base/common/resources.js';
63
+ import { registerNavigableContainer } from '../../../browser/actions/widgetNavigationCommands.js';
64
+ import { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';
65
+ import { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';
66
+ import { SeverityIcon } from '../../../../base/browser/ui/severityIcon/severityIcon.js';
67
+ import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';
68
+ import { KeyCode } from '../../../../base/common/keyCodes.js';
69
+ import { ExtensionGalleryManifestStatus } from '../../../../platform/extensionManagement/common/extensionGalleryManifest.js';
70
+ import { IExtensionGalleryManifestService } from '../../../../platform/extensionManagement/common/extensionGalleryManifest.service.js';
71
+ import { URI } from '../../../../base/common/uri.js';
72
+ import { DEFAULT_ACCOUNT_SIGN_IN_COMMAND } from '../../../services/accounts/browser/defaultAccount.js';
73
+
74
+ registerCss(extensionsViewlet);
75
+ const ExtensionsSortByContext = ( new RawContextKey("extensionsSortByValue", ""));
76
+ const SearchMarketplaceExtensionsContext = ( new RawContextKey("searchMarketplaceExtensions", false));
77
+ const SearchHasTextContext = ( new RawContextKey("extensionSearchHasText", false));
78
+ const InstalledExtensionsContext = ( new RawContextKey("installedExtensions", false));
79
+ const SearchInstalledExtensionsContext = ( new RawContextKey("searchInstalledExtensions", false));
80
+ const SearchRecentlyUpdatedExtensionsContext = ( new RawContextKey("searchRecentlyUpdatedExtensions", false));
81
+ const SearchExtensionUpdatesContext = ( new RawContextKey("searchExtensionUpdates", false));
82
+ const SearchOutdatedExtensionsContext = ( new RawContextKey("searchOutdatedExtensions", false));
83
+ const SearchEnabledExtensionsContext = ( new RawContextKey("searchEnabledExtensions", false));
84
+ const SearchDisabledExtensionsContext = ( new RawContextKey("searchDisabledExtensions", false));
85
+ const HasInstalledExtensionsContext = ( new RawContextKey("hasInstalledExtensions", true));
86
+ const BuiltInExtensionsContext = ( new RawContextKey("builtInExtensions", false));
87
+ const SearchBuiltInExtensionsContext = ( new RawContextKey("searchBuiltInExtensions", false));
88
+ const SearchUnsupportedWorkspaceExtensionsContext = ( new RawContextKey("searchUnsupportedWorkspaceExtensions", false));
89
+ const SearchDeprecatedExtensionsContext = ( new RawContextKey("searchDeprecatedExtensions", false));
90
+ const SearchRestartRequiredExtensionsContext = ( new RawContextKey("searchRestartRequiredExtensions", false));
91
+ const RecommendedExtensionsContext = ( new RawContextKey("recommendedExtensions", false));
92
+ const SortByUpdateDateContext = ( new RawContextKey("sortByUpdateDate", false));
93
+ const ExtensionsSearchValueContext = ( new RawContextKey("extensionsSearchValue", ""));
94
+ const REMOTE_CATEGORY = ( localize2(9809, "Remote"));
95
+ let ExtensionsViewletViewsContribution = class ExtensionsViewletViewsContribution extends Disposable {
96
+ constructor(extensionManagementServerService, labelService, contextKeyService) {
97
+ super();
98
+ this.extensionManagementServerService = extensionManagementServerService;
99
+ this.labelService = labelService;
100
+ this.contextKeyService = contextKeyService;
101
+ this.container = ( Registry.as(Extensions.ViewContainersRegistry)).get(VIEWLET_ID);
102
+ this.registerViews();
103
+ }
104
+ registerViews() {
105
+ const viewDescriptors = [];
106
+ viewDescriptors.push(...this.createDefaultExtensionsViewDescriptors());
107
+ viewDescriptors.push(...this.createSearchExtensionsViewDescriptors());
108
+ viewDescriptors.push(...this.createRecommendedExtensionsViewDescriptors());
109
+ viewDescriptors.push(...this.createBuiltinExtensionsViewDescriptors());
110
+ viewDescriptors.push(...this.createUnsupportedWorkspaceExtensionsViewDescriptors());
111
+ viewDescriptors.push(...this.createOtherLocalFilteredExtensionsViewDescriptors());
112
+ viewDescriptors.push({
113
+ id: "workbench.views.extensions.marketplaceAccess",
114
+ name: ( localize2(9810, "Marketplace")),
115
+ ctorDescriptor: ( new SyncDescriptor(class extends ViewPane {
116
+ shouldShowWelcome() {
117
+ return true;
118
+ }
119
+ })),
120
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.or(( ContextKeyExpr.has("searchMarketplaceExtensions")), ( ContextKeyExpr.and(DefaultViewsContext)))), ( ContextKeyExpr.or(( CONTEXT_EXTENSIONS_GALLERY_STATUS.isEqualTo(ExtensionGalleryManifestStatus.RequiresSignIn)), ( CONTEXT_EXTENSIONS_GALLERY_STATUS.isEqualTo(ExtensionGalleryManifestStatus.AccessDenied)))))),
121
+ order: -1
122
+ });
123
+ const viewRegistry = ( Registry.as(Extensions.ViewsRegistry));
124
+ viewRegistry.registerViews(viewDescriptors, this.container);
125
+ viewRegistry.registerViewWelcomeContent("workbench.views.extensions.marketplaceAccess", {
126
+ content: ( localize(
127
+ 9811,
128
+ "[Sign in to access Extensions Marketplace]({0})",
129
+ `command:${DEFAULT_ACCOUNT_SIGN_IN_COMMAND}`
130
+ )),
131
+ when: ( CONTEXT_EXTENSIONS_GALLERY_STATUS.isEqualTo(ExtensionGalleryManifestStatus.RequiresSignIn))
132
+ });
133
+ viewRegistry.registerViewWelcomeContent("workbench.views.extensions.marketplaceAccess", {
134
+ content: ( localize(
135
+ 9812,
136
+ "Your account does not have access to the Extensions Marketplace. Please contact your administrator."
137
+ )),
138
+ when: ( CONTEXT_EXTENSIONS_GALLERY_STATUS.isEqualTo(ExtensionGalleryManifestStatus.AccessDenied))
139
+ });
140
+ }
141
+ createDefaultExtensionsViewDescriptors() {
142
+ const viewDescriptors = [];
143
+ const servers = [];
144
+ if (this.extensionManagementServerService.localExtensionManagementServer) {
145
+ servers.push(this.extensionManagementServerService.localExtensionManagementServer);
146
+ }
147
+ if (this.extensionManagementServerService.remoteExtensionManagementServer) {
148
+ servers.push(this.extensionManagementServerService.remoteExtensionManagementServer);
149
+ }
150
+ if (this.extensionManagementServerService.webExtensionManagementServer) {
151
+ servers.push(this.extensionManagementServerService.webExtensionManagementServer);
152
+ }
153
+ const getViewName = (viewTitle, server) => {
154
+ return servers.length > 1 ? `${server.label} - ${viewTitle}` : viewTitle;
155
+ };
156
+ let installedWebExtensionsContextChangeEvent = Event.None;
157
+ if (this.extensionManagementServerService.webExtensionManagementServer && this.extensionManagementServerService.remoteExtensionManagementServer) {
158
+ const interestingContextKeys = ( new Set());
159
+ interestingContextKeys.add("hasInstalledWebExtensions");
160
+ installedWebExtensionsContextChangeEvent = Event.filter(
161
+ this.contextKeyService.onDidChangeContext,
162
+ e => e.affectsSome(interestingContextKeys)
163
+ );
164
+ }
165
+ const serverLabelChangeEvent = Event.any(
166
+ this.labelService.onDidChangeFormatters,
167
+ installedWebExtensionsContextChangeEvent
168
+ );
169
+ for (const server of servers) {
170
+ const getInstalledViewName = () => getViewName(( localize(9813, "Installed")), server);
171
+ const onDidChangeTitle = ( Event.map(serverLabelChangeEvent, () => getInstalledViewName()));
172
+ const id = servers.length > 1 ? `workbench.views.extensions.${server.id}.installed` : `workbench.views.extensions.installed`;
173
+ viewDescriptors.push({
174
+ id,
175
+ get name() {
176
+ return {
177
+ value: getInstalledViewName(),
178
+ original: getViewName("Installed", server)
179
+ };
180
+ },
181
+ weight: 100,
182
+ order: 1,
183
+ when: ( ContextKeyExpr.and(DefaultViewsContext)),
184
+ ctorDescriptor: ( new SyncDescriptor(ServerInstalledExtensionsView, [{
185
+ server,
186
+ flexibleHeight: true,
187
+ onDidChangeTitle
188
+ }])),
189
+ canToggleVisibility: servers.length === 1
190
+ });
191
+ if (server === this.extensionManagementServerService.remoteExtensionManagementServer && this.extensionManagementServerService.localExtensionManagementServer) {
192
+ this._register(
193
+ registerAction2(class InstallLocalExtensionsInRemoteAction2 extends Action2 {
194
+ constructor() {
195
+ super({
196
+ id: "workbench.extensions.installLocalExtensions",
197
+ get title() {
198
+ return localize2(9814, "Install Local Extensions in '{0}'...", server.label);
199
+ },
200
+ category: REMOTE_CATEGORY,
201
+ icon: installLocalInRemoteIcon,
202
+ f1: true,
203
+ menu: {
204
+ id: MenuId.ViewTitle,
205
+ when: ( ContextKeyExpr.equals("view", id)),
206
+ group: "navigation"
207
+ }
208
+ });
209
+ }
210
+ run(accessor) {
211
+ return accessor.get(IInstantiationService).createInstance(InstallLocalExtensionsInRemoteAction).run();
212
+ }
213
+ })
214
+ );
215
+ }
216
+ }
217
+ if (this.extensionManagementServerService.localExtensionManagementServer && this.extensionManagementServerService.remoteExtensionManagementServer) {
218
+ this._register(
219
+ registerAction2(class InstallRemoteExtensionsInLocalAction2 extends Action2 {
220
+ constructor() {
221
+ super({
222
+ id: "workbench.extensions.actions.installLocalExtensionsInRemote",
223
+ title: ( localize2(9815, "Install Remote Extensions Locally...")),
224
+ category: REMOTE_CATEGORY,
225
+ f1: true
226
+ });
227
+ }
228
+ run(accessor) {
229
+ return accessor.get(IInstantiationService).createInstance(
230
+ InstallRemoteExtensionsInLocalAction,
231
+ "workbench.extensions.actions.installLocalExtensionsInRemote"
232
+ ).run();
233
+ }
234
+ })
235
+ );
236
+ }
237
+ viewDescriptors.push({
238
+ id: "workbench.views.extensions.popular",
239
+ name: ( localize2(9816, "Popular")),
240
+ ctorDescriptor: ( new SyncDescriptor(DefaultPopularExtensionsView, [{
241
+ hideBadge: true
242
+ }])),
243
+ when: ( ContextKeyExpr.and(
244
+ DefaultViewsContext,
245
+ ContextKeyExpr.not("hasInstalledExtensions"),
246
+ CONTEXT_HAS_GALLERY
247
+ )),
248
+ weight: 60,
249
+ order: 2,
250
+ canToggleVisibility: false
251
+ });
252
+ viewDescriptors.push({
253
+ id: "extensions.recommendedList",
254
+ name: ( localize2(9817, "Recommended")),
255
+ ctorDescriptor: ( new SyncDescriptor(DefaultRecommendedExtensionsView, [{
256
+ flexibleHeight: true
257
+ }])),
258
+ when: ( ContextKeyExpr.and(DefaultViewsContext, ( SortByUpdateDateContext.negate()), ContextKeyExpr.not("config.extensions.showRecommendationsOnlyOnDemand"), CONTEXT_HAS_GALLERY)),
259
+ weight: 40,
260
+ order: 3,
261
+ canToggleVisibility: true
262
+ });
263
+ if (servers.length === 1) {
264
+ viewDescriptors.push({
265
+ id: "workbench.views.extensions.enabled",
266
+ name: ( localize2(9818, "Enabled")),
267
+ ctorDescriptor: ( new SyncDescriptor(EnabledExtensionsView, [{}])),
268
+ when: ( ContextKeyExpr.and(DefaultViewsContext, ( ContextKeyExpr.has("hasInstalledExtensions")))),
269
+ hideByDefault: true,
270
+ weight: 40,
271
+ order: 4,
272
+ canToggleVisibility: true
273
+ });
274
+ viewDescriptors.push({
275
+ id: "workbench.views.extensions.disabled",
276
+ name: ( localize2(9819, "Disabled")),
277
+ ctorDescriptor: ( new SyncDescriptor(DisabledExtensionsView, [{}])),
278
+ when: ( ContextKeyExpr.and(DefaultViewsContext, ( ContextKeyExpr.has("hasInstalledExtensions")))),
279
+ hideByDefault: true,
280
+ weight: 10,
281
+ order: 5,
282
+ canToggleVisibility: true
283
+ });
284
+ }
285
+ return viewDescriptors;
286
+ }
287
+ createSearchExtensionsViewDescriptors() {
288
+ const viewDescriptors = [];
289
+ viewDescriptors.push({
290
+ id: "workbench.views.extensions.marketplace",
291
+ name: ( localize2(9810, "Marketplace")),
292
+ ctorDescriptor: ( new SyncDescriptor(SearchMarketplaceExtensionsView, [{}])),
293
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("searchMarketplaceExtensions")), CONTEXT_HAS_GALLERY))
294
+ });
295
+ viewDescriptors.push({
296
+ id: "workbench.views.extensions.searchInstalled",
297
+ name: ( localize2(9813, "Installed")),
298
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
299
+ when: ( ContextKeyExpr.or(( ContextKeyExpr.has("searchInstalledExtensions")), ( ContextKeyExpr.has("installedExtensions"))))
300
+ });
301
+ viewDescriptors.push({
302
+ id: "workbench.views.extensions.searchRecentlyUpdated",
303
+ name: ( localize2(9820, "Recently Updated")),
304
+ ctorDescriptor: ( new SyncDescriptor(RecentlyUpdatedExtensionsView, [{}])),
305
+ when: ( ContextKeyExpr.or(SearchExtensionUpdatesContext, ( ContextKeyExpr.has("searchRecentlyUpdatedExtensions")))),
306
+ order: 2
307
+ });
308
+ viewDescriptors.push({
309
+ id: "workbench.views.extensions.searchEnabled",
310
+ name: ( localize2(9821, "Enabled")),
311
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
312
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("searchEnabledExtensions"))))
313
+ });
314
+ viewDescriptors.push({
315
+ id: "workbench.views.extensions.searchDisabled",
316
+ name: ( localize2(9822, "Disabled")),
317
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
318
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("searchDisabledExtensions"))))
319
+ });
320
+ viewDescriptors.push({
321
+ id: OUTDATED_EXTENSIONS_VIEW_ID,
322
+ name: ( localize2(9823, "Available Updates")),
323
+ ctorDescriptor: ( new SyncDescriptor(OutdatedExtensionsView, [{}])),
324
+ when: ( ContextKeyExpr.or(SearchExtensionUpdatesContext, ( ContextKeyExpr.has("searchOutdatedExtensions")))),
325
+ order: 1
326
+ });
327
+ viewDescriptors.push({
328
+ id: "workbench.views.extensions.searchBuiltin",
329
+ name: ( localize2(9824, "Builtin")),
330
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
331
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("searchBuiltInExtensions"))))
332
+ });
333
+ viewDescriptors.push({
334
+ id: "workbench.views.extensions.searchWorkspaceUnsupported",
335
+ name: ( localize2(9825, "Workspace Unsupported")),
336
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
337
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("searchWorkspaceUnsupportedExtensions"))))
338
+ });
339
+ return viewDescriptors;
340
+ }
341
+ createRecommendedExtensionsViewDescriptors() {
342
+ const viewDescriptors = [];
343
+ viewDescriptors.push({
344
+ id: WORKSPACE_RECOMMENDATIONS_VIEW_ID,
345
+ name: ( localize2(9826, "Workspace Recommendations")),
346
+ ctorDescriptor: ( new SyncDescriptor(WorkspaceRecommendedExtensionsView, [{}])),
347
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.has("recommendedExtensions")), ( WorkbenchStateContext.notEqualsTo("empty")))),
348
+ order: 1
349
+ });
350
+ viewDescriptors.push({
351
+ id: "workbench.views.extensions.otherRecommendations",
352
+ name: ( localize2(9827, "Other Recommendations")),
353
+ ctorDescriptor: ( new SyncDescriptor(RecommendedExtensionsView, [{}])),
354
+ when: ( ContextKeyExpr.has("recommendedExtensions")),
355
+ order: 2
356
+ });
357
+ return viewDescriptors;
358
+ }
359
+ createBuiltinExtensionsViewDescriptors() {
360
+ const viewDescriptors = [];
361
+ const configuredCategories = ["themes", "programming languages"];
362
+ const otherCategories = EXTENSION_CATEGORIES.filter(c => !configuredCategories.includes(c.toLowerCase()));
363
+ otherCategories.push(NONE_CATEGORY);
364
+ const otherCategoriesQuery = `${( otherCategories.map(c => `category:"${c}"`)).join(" ")} ${( configuredCategories.map(c => `category:"-${c}"`)).join(" ")}`;
365
+ viewDescriptors.push({
366
+ id: "workbench.views.extensions.builtinFeatureExtensions",
367
+ name: ( localize2(9828, "Features")),
368
+ ctorDescriptor: ( new SyncDescriptor(StaticQueryExtensionsView, [{
369
+ query: `@builtin ${otherCategoriesQuery}`
370
+ }])),
371
+ when: ( ContextKeyExpr.has("builtInExtensions"))
372
+ });
373
+ viewDescriptors.push({
374
+ id: "workbench.views.extensions.builtinThemeExtensions",
375
+ name: ( localize2(9829, "Themes")),
376
+ ctorDescriptor: ( new SyncDescriptor(StaticQueryExtensionsView, [{
377
+ query: `@builtin category:themes`
378
+ }])),
379
+ when: ( ContextKeyExpr.has("builtInExtensions"))
380
+ });
381
+ viewDescriptors.push({
382
+ id: "workbench.views.extensions.builtinProgrammingLanguageExtensions",
383
+ name: ( localize2(9830, "Programming Languages")),
384
+ ctorDescriptor: ( new SyncDescriptor(StaticQueryExtensionsView, [{
385
+ query: `@builtin category:"programming languages"`
386
+ }])),
387
+ when: ( ContextKeyExpr.has("builtInExtensions"))
388
+ });
389
+ return viewDescriptors;
390
+ }
391
+ createUnsupportedWorkspaceExtensionsViewDescriptors() {
392
+ const viewDescriptors = [];
393
+ viewDescriptors.push({
394
+ id: "workbench.views.extensions.untrustedUnsupportedExtensions",
395
+ name: ( localize2(9831, "Disabled in Restricted Mode")),
396
+ ctorDescriptor: ( new SyncDescriptor(UntrustedWorkspaceUnsupportedExtensionsView, [{}])),
397
+ when: ( ContextKeyExpr.and(SearchUnsupportedWorkspaceExtensionsContext))
398
+ });
399
+ viewDescriptors.push({
400
+ id: "workbench.views.extensions.untrustedPartiallySupportedExtensions",
401
+ name: ( localize2(9832, "Limited in Restricted Mode")),
402
+ ctorDescriptor: ( new SyncDescriptor(UntrustedWorkspacePartiallySupportedExtensionsView, [{}])),
403
+ when: ( ContextKeyExpr.and(SearchUnsupportedWorkspaceExtensionsContext))
404
+ });
405
+ viewDescriptors.push({
406
+ id: "workbench.views.extensions.virtualUnsupportedExtensions",
407
+ name: ( localize2(9833, "Disabled in Virtual Workspaces")),
408
+ ctorDescriptor: ( new SyncDescriptor(VirtualWorkspaceUnsupportedExtensionsView, [{}])),
409
+ when: ( ContextKeyExpr.and(VirtualWorkspaceContext, SearchUnsupportedWorkspaceExtensionsContext))
410
+ });
411
+ viewDescriptors.push({
412
+ id: "workbench.views.extensions.virtualPartiallySupportedExtensions",
413
+ name: ( localize2(9834, "Limited in Virtual Workspaces")),
414
+ ctorDescriptor: ( new SyncDescriptor(VirtualWorkspacePartiallySupportedExtensionsView, [{}])),
415
+ when: ( ContextKeyExpr.and(VirtualWorkspaceContext, SearchUnsupportedWorkspaceExtensionsContext))
416
+ });
417
+ return viewDescriptors;
418
+ }
419
+ createOtherLocalFilteredExtensionsViewDescriptors() {
420
+ const viewDescriptors = [];
421
+ viewDescriptors.push({
422
+ id: "workbench.views.extensions.deprecatedExtensions",
423
+ name: ( localize2(9835, "Deprecated")),
424
+ ctorDescriptor: ( new SyncDescriptor(DeprecatedExtensionsView, [{}])),
425
+ when: ( ContextKeyExpr.and(SearchDeprecatedExtensionsContext))
426
+ });
427
+ viewDescriptors.push({
428
+ id: "workbench.views.extensions.restartRequired",
429
+ name: ( localize2(9836, "Restart Required")),
430
+ ctorDescriptor: ( new SyncDescriptor(ExtensionsListView, [{}])),
431
+ when: ( ContextKeyExpr.and(SearchRestartRequiredExtensionsContext))
432
+ });
433
+ return viewDescriptors;
434
+ }
435
+ };
436
+ ExtensionsViewletViewsContribution = ( __decorate([( __param(0, IExtensionManagementServerService)), ( __param(1, ILabelService)), ( __param(2, IContextKeyService))], ExtensionsViewletViewsContribution));
437
+ let ExtensionsViewPaneContainer = class ExtensionsViewPaneContainer extends ViewPaneContainer {
438
+ constructor(
439
+ layoutService,
440
+ telemetryService,
441
+ progressService,
442
+ instantiationService,
443
+ editorGroupService,
444
+ extensionGalleryManifestService,
445
+ extensionsWorkbenchService,
446
+ extensionManagementServerService,
447
+ notificationService,
448
+ paneCompositeService,
449
+ themeService,
450
+ configurationService,
451
+ storageService,
452
+ contextService,
453
+ contextKeyService,
454
+ contextMenuService,
455
+ extensionService,
456
+ viewDescriptorService,
457
+ preferencesService,
458
+ commandService,
459
+ logService
460
+ ) {
461
+ super(VIEWLET_ID, {
462
+ mergeViewWithContainerWhenSingleView: true
463
+ }, instantiationService, configurationService, layoutService, contextMenuService, telemetryService, extensionService, themeService, storageService, contextService, viewDescriptorService, logService);
464
+ this.progressService = progressService;
465
+ this.editorGroupService = editorGroupService;
466
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
467
+ this.extensionManagementServerService = extensionManagementServerService;
468
+ this.notificationService = notificationService;
469
+ this.paneCompositeService = paneCompositeService;
470
+ this.contextKeyService = contextKeyService;
471
+ this.preferencesService = preferencesService;
472
+ this.commandService = commandService;
473
+ this.extensionGalleryManifest = null;
474
+ this.notificationDisposables = this._register(( new MutableDisposable()));
475
+ this.searchDelayer = this._register(( new Delayer(500)));
476
+ this.extensionsSearchValueContextKey = ExtensionsSearchValueContext.bindTo(contextKeyService);
477
+ this.defaultViewsContextKey = DefaultViewsContext.bindTo(contextKeyService);
478
+ this.sortByContextKey = ExtensionsSortByContext.bindTo(contextKeyService);
479
+ this.searchMarketplaceExtensionsContextKey = SearchMarketplaceExtensionsContext.bindTo(contextKeyService);
480
+ this.searchMcpServersContextKey = SearchMcpServersContext.bindTo(contextKeyService);
481
+ this.searchAgentPluginsContextKey = SearchAgentPluginsContext.bindTo(contextKeyService);
482
+ this.searchHasTextContextKey = SearchHasTextContext.bindTo(contextKeyService);
483
+ this.sortByUpdateDateContextKey = SortByUpdateDateContext.bindTo(contextKeyService);
484
+ this.installedExtensionsContextKey = InstalledExtensionsContext.bindTo(contextKeyService);
485
+ this.searchInstalledExtensionsContextKey = SearchInstalledExtensionsContext.bindTo(contextKeyService);
486
+ this.searchRecentlyUpdatedExtensionsContextKey = SearchRecentlyUpdatedExtensionsContext.bindTo(contextKeyService);
487
+ this.searchExtensionUpdatesContextKey = SearchExtensionUpdatesContext.bindTo(contextKeyService);
488
+ this.searchWorkspaceUnsupportedExtensionsContextKey = SearchUnsupportedWorkspaceExtensionsContext.bindTo(contextKeyService);
489
+ this.searchDeprecatedExtensionsContextKey = SearchDeprecatedExtensionsContext.bindTo(contextKeyService);
490
+ this.searchRestartRequiredExtensionsContextKey = SearchRestartRequiredExtensionsContext.bindTo(contextKeyService);
491
+ this.searchOutdatedExtensionsContextKey = SearchOutdatedExtensionsContext.bindTo(contextKeyService);
492
+ this.searchEnabledExtensionsContextKey = SearchEnabledExtensionsContext.bindTo(contextKeyService);
493
+ this.searchDisabledExtensionsContextKey = SearchDisabledExtensionsContext.bindTo(contextKeyService);
494
+ this.hasInstalledExtensionsContextKey = HasInstalledExtensionsContext.bindTo(contextKeyService);
495
+ this.builtInExtensionsContextKey = BuiltInExtensionsContext.bindTo(contextKeyService);
496
+ this.searchBuiltInExtensionsContextKey = SearchBuiltInExtensionsContext.bindTo(contextKeyService);
497
+ this.recommendedExtensionsContextKey = RecommendedExtensionsContext.bindTo(contextKeyService);
498
+ this._register(this.paneCompositeService.onDidPaneCompositeOpen(e => {
499
+ if (e.viewContainerLocation === ViewContainerLocation.Sidebar) {
500
+ this.onViewletOpen(e.composite);
501
+ }
502
+ }, this));
503
+ this._register(extensionsWorkbenchService.onReset(() => this.refresh()));
504
+ this.searchViewletState = this.getMemento(StorageScope.WORKSPACE, StorageTarget.MACHINE);
505
+ extensionGalleryManifestService.getExtensionGalleryManifest().then(galleryManifest => {
506
+ this.extensionGalleryManifest = galleryManifest;
507
+ this._register(
508
+ extensionGalleryManifestService.onDidChangeExtensionGalleryManifest(galleryManifest => {
509
+ this.extensionGalleryManifest = galleryManifest;
510
+ this.refresh();
511
+ })
512
+ );
513
+ });
514
+ }
515
+ get searchValue() {
516
+ return this.searchBox?.getValue();
517
+ }
518
+ create(parent) {
519
+ parent.classList.add("extensions-viewlet");
520
+ this.root = parent;
521
+ const overlay = append(this.root, $(".overlay"));
522
+ const overlayBackgroundColor = this.getColor(SIDE_BAR_DRAG_AND_DROP_BACKGROUND) ?? "";
523
+ overlay.style.backgroundColor = overlayBackgroundColor;
524
+ hide(overlay);
525
+ this.header = append(this.root, $(".header"));
526
+ const placeholder = ( localize(9837, "Search Extensions in Marketplace"));
527
+ const searchValue = this.searchViewletState["query.value"] ? this.searchViewletState["query.value"] : "";
528
+ const searchContainer = append(this.header, $(".extensions-search-container"));
529
+ this.searchBox = this._register(
530
+ this.instantiationService.createInstance(SuggestEnabledInput, `${VIEWLET_ID}.searchbox`, searchContainer, {
531
+ triggerCharacters: ["@"],
532
+ sortKey: item => {
533
+ if (item.indexOf(":") === -1) {
534
+ return "a";
535
+ } else if (/ext:/.test(item) || /id:/.test(item) || /tag:/.test(item)) {
536
+ return "b";
537
+ } else if (/sort:/.test(item)) {
538
+ return "c";
539
+ } else {
540
+ return "d";
541
+ }
542
+ },
543
+ provideResults: query => Query.suggestions(query, this.extensionGalleryManifest)
544
+ }, placeholder, "extensions:searchinput", {
545
+ placeholderText: placeholder,
546
+ value: searchValue
547
+ })
548
+ );
549
+ this.notificationContainer = append(this.header, $(".notification-container.hidden", {
550
+ "tabindex": "0"
551
+ }));
552
+ this.renderNotificaiton();
553
+ this._register(
554
+ this.extensionsWorkbenchService.onDidChangeExtensionsNotification(() => this.renderNotificaiton())
555
+ );
556
+ this.updateInstalledExtensionsContexts();
557
+ if (this.searchBox.getValue()) {
558
+ this.triggerSearch();
559
+ }
560
+ this._register(this.searchBox.onInputDidChange(() => {
561
+ this.sortByContextKey.set(Query.parse(this.searchBox?.getValue() ?? "").sortBy);
562
+ this.triggerSearch();
563
+ }, this));
564
+ this._register(this.searchBox.onShouldFocusResults(() => this.focusListView(), this));
565
+ const controlElement = append(searchContainer, $(".extensions-search-actions-container"));
566
+ this._register(
567
+ this.instantiationService.createInstance(MenuWorkbenchToolBar, controlElement, extensionsSearchActionsMenu, {
568
+ toolbarOptions: {
569
+ primaryGroup: () => true
570
+ },
571
+ actionViewItemProvider: (action, options) => createActionViewItem(this.instantiationService, action, options)
572
+ })
573
+ );
574
+ this._register(new DragAndDropObserver(this.root, {
575
+ onDragEnter: e => {
576
+ if (this.isSupportedDragElement(e)) {
577
+ show(overlay);
578
+ }
579
+ },
580
+ onDragLeave: e => {
581
+ if (this.isSupportedDragElement(e)) {
582
+ hide(overlay);
583
+ }
584
+ },
585
+ onDragOver: e => {
586
+ if (this.isSupportedDragElement(e)) {
587
+ e.dataTransfer.dropEffect = "copy";
588
+ }
589
+ },
590
+ onDrop: async e => {
591
+ if (this.isSupportedDragElement(e)) {
592
+ hide(overlay);
593
+ const vsixs = coalesce(( (await this.instantiationService.invokeFunction(accessor => extractEditorsAndFilesDropData(accessor, e))).map(
594
+ editor => editor.resource && extname(editor.resource) === ".vsix" ? editor.resource : undefined
595
+ )));
596
+ if (vsixs.length > 0) {
597
+ try {
598
+ await this.commandService.executeCommand(INSTALL_EXTENSION_FROM_VSIX_COMMAND_ID, vsixs);
599
+ } catch (err) {
600
+ this.notificationService.error(err);
601
+ }
602
+ }
603
+ }
604
+ }
605
+ }));
606
+ super.create(append(this.root, $(".extensions")));
607
+ const focusTracker = this._register(trackFocus(this.root));
608
+ const isSearchBoxFocused = () => this.searchBox?.inputWidget.hasWidgetFocus();
609
+ this._register(registerNavigableContainer({
610
+ name: "extensionsView",
611
+ focusNotifiers: [focusTracker],
612
+ focusNextWidget: () => {
613
+ if (isSearchBoxFocused()) {
614
+ this.focusListView();
615
+ }
616
+ },
617
+ focusPreviousWidget: () => {
618
+ if (!isSearchBoxFocused()) {
619
+ this.searchBox?.focus();
620
+ }
621
+ }
622
+ }));
623
+ }
624
+ focus() {
625
+ super.focus();
626
+ this.searchBox?.focus();
627
+ }
628
+ layout(dimension) {
629
+ this._dimension = dimension;
630
+ if (this.root) {
631
+ this.root.classList.toggle("narrow", dimension.width <= 250);
632
+ this.root.classList.toggle("mini", dimension.width <= 200);
633
+ }
634
+ this.searchBox?.layout(( new Dimension(dimension.width - 34 - 8 - (24 * 2), 20)));
635
+ const searchBoxHeight = 20 + 21 ;
636
+ const headerHeight = this.header && !!this.notificationContainer?.childNodes.length ? this.notificationContainer.clientHeight + searchBoxHeight + 10 : searchBoxHeight;
637
+ this.header.style.height = `${headerHeight}px`;
638
+ super.layout(( new Dimension(dimension.width, dimension.height - headerHeight)));
639
+ }
640
+ getOptimalWidth() {
641
+ return 400;
642
+ }
643
+ search(value) {
644
+ if (this.searchBox && this.searchBox.getValue() !== value) {
645
+ this.searchBox.setValue(value);
646
+ }
647
+ }
648
+ async refresh() {
649
+ await this.updateInstalledExtensionsContexts();
650
+ this.doSearch(true);
651
+ if (this.configurationService.getValue(AutoCheckUpdatesConfigurationKey)) {
652
+ this.extensionsWorkbenchService.checkForUpdates();
653
+ }
654
+ }
655
+ renderNotificaiton() {
656
+ if (!this.notificationContainer) {
657
+ return;
658
+ }
659
+ clearNode(this.notificationContainer);
660
+ this.notificationDisposables.value = ( new DisposableStore());
661
+ const status = this.extensionsWorkbenchService.getExtensionsNotification();
662
+ const query = status?.query ?? status?.extensions.map(extension => `@id:${extension.identifier.id}`).join(" ");
663
+ if (status && (query === this.searchBox?.getValue() || !this.searchMarketplaceExtensionsContextKey.get())) {
664
+ this.notificationContainer.setAttribute("aria-label", status.message);
665
+ this.notificationContainer.classList.remove("hidden");
666
+ const messageContainer = append(this.notificationContainer, $(".message-container"));
667
+ append(messageContainer, $("span")).className = SeverityIcon.className(status.severity);
668
+ const messageText = append(messageContainer, $("span.message-text"));
669
+ append(messageText, $("span.message", undefined, status.message));
670
+ const showAction = append(messageText, $("span.message-text-action", {
671
+ "tabindex": "0",
672
+ "role": "button",
673
+ "aria-label": `${status.message}. ${( localize(9838, "Click to Show"))}`
674
+ }, ( localize(9839, "Show"))));
675
+ this.notificationDisposables.value.add(
676
+ addDisposableListener(showAction, EventType.CLICK, () => this.search(query ?? ""))
677
+ );
678
+ this.notificationDisposables.value.add(addDisposableListener(showAction, EventType.KEY_DOWN, e => {
679
+ const standardKeyboardEvent = ( new StandardKeyboardEvent(e));
680
+ if (standardKeyboardEvent.keyCode === KeyCode.Enter || standardKeyboardEvent.keyCode === KeyCode.Space) {
681
+ this.search(query ?? "");
682
+ }
683
+ standardKeyboardEvent.stopPropagation();
684
+ }));
685
+ const actionsContainer = append(this.notificationContainer, $(".notification-actions"));
686
+ if (status.action) {
687
+ const actionButton = append(actionsContainer, $("span.message-action-button", {
688
+ "tabindex": "0",
689
+ "role": "button",
690
+ "aria-label": status.action.label
691
+ }, status.action.label));
692
+ this.notificationDisposables.value.add(addDisposableListener(actionButton, EventType.CLICK, () => {
693
+ Promise.resolve(status.action.run()).catch(error => this.notificationService.error(error));
694
+ }));
695
+ this.notificationDisposables.value.add(addDisposableListener(actionButton, EventType.KEY_DOWN, e => {
696
+ const standardKeyboardEvent = ( new StandardKeyboardEvent(e));
697
+ if (standardKeyboardEvent.keyCode === KeyCode.Enter || standardKeyboardEvent.keyCode === KeyCode.Space) {
698
+ Promise.resolve(status.action.run()).catch(error => this.notificationService.error(error));
699
+ }
700
+ standardKeyboardEvent.stopPropagation();
701
+ }));
702
+ }
703
+ } else {
704
+ this.notificationContainer.removeAttribute("aria-label");
705
+ this.notificationContainer.classList.add("hidden");
706
+ if (this.searchBox && ExtensionsListView.isRestartRequiredQuery(this.searchBox.getValue())) {
707
+ this.search("");
708
+ }
709
+ }
710
+ if (this._dimension) {
711
+ this.layout(this._dimension);
712
+ }
713
+ }
714
+ async updateInstalledExtensionsContexts() {
715
+ const result = await this.extensionsWorkbenchService.queryLocal();
716
+ this.hasInstalledExtensionsContextKey.set(( result.some(r => !r.isBuiltin)));
717
+ }
718
+ triggerSearch() {
719
+ this.searchDelayer.trigger(
720
+ () => this.doSearch(),
721
+ this.searchBox && this.searchBox.getValue() ? 500 : 0
722
+ ).then(undefined, err => this.onError(err));
723
+ }
724
+ normalizedQuery() {
725
+ return this.searchBox ? this.searchBox.getValue().trim().replace(/@category/g, "category").replace(/@tag:/g, "tag:").replace(/@ext:/g, "ext:").replace(/@featured/g, "featured").replace(
726
+ /@popular/g,
727
+ this.extensionManagementServerService.webExtensionManagementServer && !this.extensionManagementServerService.localExtensionManagementServer && !this.extensionManagementServerService.remoteExtensionManagementServer ? "@web" : "@popular"
728
+ ) : "";
729
+ }
730
+ saveState() {
731
+ const value = this.searchBox ? this.searchBox.getValue() : "";
732
+ if (ExtensionsListView.isLocalExtensionsQuery(value)) {
733
+ this.searchViewletState["query.value"] = value;
734
+ } else {
735
+ this.searchViewletState["query.value"] = "";
736
+ }
737
+ super.saveState();
738
+ }
739
+ doSearch(refresh) {
740
+ const value = this.normalizedQuery();
741
+ this.contextKeyService.bufferChangeEvents(() => {
742
+ const isRecommendedExtensionsQuery = ExtensionsListView.isRecommendedExtensionsQuery(value);
743
+ this.searchHasTextContextKey.set(value.trim() !== "");
744
+ this.extensionsSearchValueContextKey.set(value);
745
+ this.installedExtensionsContextKey.set(ExtensionsListView.isInstalledExtensionsQuery(value));
746
+ this.searchInstalledExtensionsContextKey.set(ExtensionsListView.isSearchInstalledExtensionsQuery(value));
747
+ this.searchRecentlyUpdatedExtensionsContextKey.set(
748
+ ExtensionsListView.isSearchRecentlyUpdatedQuery(value) && !ExtensionsListView.isSearchExtensionUpdatesQuery(value)
749
+ );
750
+ this.searchOutdatedExtensionsContextKey.set(
751
+ ExtensionsListView.isOutdatedExtensionsQuery(value) && !ExtensionsListView.isSearchExtensionUpdatesQuery(value)
752
+ );
753
+ this.searchExtensionUpdatesContextKey.set(ExtensionsListView.isSearchExtensionUpdatesQuery(value));
754
+ this.searchEnabledExtensionsContextKey.set(ExtensionsListView.isEnabledExtensionsQuery(value));
755
+ this.searchDisabledExtensionsContextKey.set(ExtensionsListView.isDisabledExtensionsQuery(value));
756
+ this.searchBuiltInExtensionsContextKey.set(ExtensionsListView.isSearchBuiltInExtensionsQuery(value));
757
+ this.searchWorkspaceUnsupportedExtensionsContextKey.set(ExtensionsListView.isSearchWorkspaceUnsupportedExtensionsQuery(value));
758
+ this.searchDeprecatedExtensionsContextKey.set(ExtensionsListView.isSearchDeprecatedExtensionsQuery(value));
759
+ this.searchRestartRequiredExtensionsContextKey.set(ExtensionsListView.isRestartRequiredQuery(value));
760
+ this.builtInExtensionsContextKey.set(ExtensionsListView.isBuiltInExtensionsQuery(value));
761
+ this.recommendedExtensionsContextKey.set(isRecommendedExtensionsQuery);
762
+ this.searchMcpServersContextKey.set(!!value && /@mcp\s?.*/i.test(value));
763
+ this.searchAgentPluginsContextKey.set(!!value && /@agentPlugins\s?.*/i.test(value));
764
+ this.searchMarketplaceExtensionsContextKey.set(
765
+ !!value && !ExtensionsListView.isLocalExtensionsQuery(value) && !isRecommendedExtensionsQuery && !this.searchMcpServersContextKey.get() && !this.searchAgentPluginsContextKey.get()
766
+ );
767
+ this.sortByUpdateDateContextKey.set(ExtensionsListView.isSortUpdateDateQuery(value));
768
+ this.defaultViewsContextKey.set(!value || ExtensionsListView.isSortInstalledExtensionsQuery(value));
769
+ });
770
+ this.renderNotificaiton();
771
+ return this.showExtensionsViews(this.panes);
772
+ }
773
+ onDidAddViewDescriptors(added) {
774
+ const addedViews = super.onDidAddViewDescriptors(added);
775
+ this.showExtensionsViews(addedViews);
776
+ return addedViews;
777
+ }
778
+ async showExtensionsViews(views) {
779
+ await this.progress(Promise.all(( views.map(async view => {
780
+ if (view instanceof AbstractExtensionsListView) {
781
+ const model = await view.show(this.normalizedQuery());
782
+ this.alertSearchResult(model.length, view.id);
783
+ }
784
+ }))));
785
+ }
786
+ alertSearchResult(count, viewId) {
787
+ const view = this.viewContainerModel.visibleViewDescriptors.find(view => view.id === viewId);
788
+ switch (count) {
789
+ case 0:
790
+ break;
791
+ case 1:
792
+ if (view) {
793
+ alert(( localize(9840, "1 extension found in the {0} section.", view.name.value)));
794
+ } else {
795
+ alert(( localize(9841, "1 extension found.")));
796
+ }
797
+ break;
798
+ default:
799
+ if (view) {
800
+ alert(( localize(9842, "{0} extensions found in the {1} section.", count, view.name.value)));
801
+ } else {
802
+ alert(( localize(9843, "{0} extensions found.", count)));
803
+ }
804
+ break;
805
+ }
806
+ }
807
+ getFirstExpandedPane() {
808
+ for (const pane of this.panes) {
809
+ if (pane.isExpanded() && pane instanceof ExtensionsListView) {
810
+ return pane;
811
+ }
812
+ }
813
+ return undefined;
814
+ }
815
+ focusListView() {
816
+ const pane = this.getFirstExpandedPane();
817
+ if (pane && pane.count() > 0) {
818
+ pane.focus();
819
+ }
820
+ }
821
+ onViewletOpen(viewlet) {
822
+ if (!viewlet || viewlet.getId() === VIEWLET_ID) {
823
+ return;
824
+ }
825
+ if (this.configurationService.getValue(CloseExtensionDetailsOnViewChangeKey)) {
826
+ const promises = ( this.editorGroupService.groups.map(group => {
827
+ const editors = group.editors.filter(input => input instanceof ExtensionsInput);
828
+ return group.closeEditors(editors);
829
+ }));
830
+ Promise.all(promises);
831
+ }
832
+ }
833
+ progress(promise) {
834
+ return this.progressService.withProgress({
835
+ location: ProgressLocation.Extensions
836
+ }, () => promise);
837
+ }
838
+ onError(err) {
839
+ if (isCancellationError(err)) {
840
+ return;
841
+ }
842
+ const message = err && err.message || "";
843
+ if (/ECONNREFUSED/.test(message)) {
844
+ const error = createErrorWithActions(( localize(
845
+ 9844,
846
+ "Marketplace returned 'ECONNREFUSED'. Please check the 'http.proxy' setting."
847
+ )), [( new Action("open user settings", ( localize(9845, "Open User Settings")), undefined, true, () => this.preferencesService.openUserSettings()))]);
848
+ this.notificationService.error(error);
849
+ return;
850
+ }
851
+ this.notificationService.error(err);
852
+ }
853
+ isSupportedDragElement(e) {
854
+ if (e.dataTransfer) {
855
+ const typesLowerCase = ( e.dataTransfer.types.map(t => t.toLocaleLowerCase()));
856
+ return typesLowerCase.indexOf("files") !== -1;
857
+ }
858
+ return false;
859
+ }
860
+ };
861
+ ExtensionsViewPaneContainer = ( __decorate([( __param(0, IWorkbenchLayoutService)), ( __param(1, ITelemetryService)), ( __param(2, IProgressService)), ( __param(3, IInstantiationService)), ( __param(4, IEditorGroupsService)), ( __param(5, IExtensionGalleryManifestService)), ( __param(6, IExtensionsWorkbenchService)), ( __param(7, IExtensionManagementServerService)), ( __param(8, INotificationService)), ( __param(9, IPaneCompositePartService)), ( __param(10, IThemeService)), ( __param(11, IConfigurationService)), ( __param(12, IStorageService)), ( __param(13, IWorkspaceContextService)), ( __param(14, IContextKeyService)), ( __param(15, IContextMenuService)), ( __param(16, IExtensionService)), ( __param(17, IViewDescriptorService)), ( __param(18, IPreferencesService)), ( __param(19, ICommandService)), ( __param(20, ILogService))], ExtensionsViewPaneContainer));
862
+ let StatusUpdater = class StatusUpdater extends Disposable {
863
+ constructor(
864
+ activityService,
865
+ extensionsWorkbenchService,
866
+ extensionEnablementService,
867
+ configurationService
868
+ ) {
869
+ super();
870
+ this.activityService = activityService;
871
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
872
+ this.extensionEnablementService = extensionEnablementService;
873
+ this.configurationService = configurationService;
874
+ this.badgeHandle = this._register(( new MutableDisposable()));
875
+ this.onServiceChange();
876
+ this._register(Event.any(Event.debounce(
877
+ extensionsWorkbenchService.onChange,
878
+ () => undefined,
879
+ 100,
880
+ undefined,
881
+ undefined,
882
+ undefined,
883
+ this._store
884
+ ), extensionsWorkbenchService.onDidChangeExtensionsNotification)(this.onServiceChange, this));
885
+ }
886
+ onServiceChange() {
887
+ this.badgeHandle.clear();
888
+ let badge;
889
+ const extensionsNotification = this.extensionsWorkbenchService.getExtensionsNotification();
890
+ if (extensionsNotification && extensionsNotification.severity === Severity$1.Warning) {
891
+ badge = ( new WarningBadge(() => extensionsNotification.message));
892
+ }
893
+ if (!badge) {
894
+ const actionRequired = this.configurationService.getValue(AutoRestartConfigurationKey) === true ? [] : this.extensionsWorkbenchService.installed.filter(e => e.runtimeState !== undefined);
895
+ const outdated = this.extensionsWorkbenchService.outdated.reduce(
896
+ (r, e) => r + (this.extensionEnablementService.isEnabled(e.local) && !actionRequired.includes(e) ? 1 : 0),
897
+ 0
898
+ );
899
+ const newBadgeNumber = outdated + actionRequired.length;
900
+ if (newBadgeNumber > 0) {
901
+ let msg = "";
902
+ if (outdated) {
903
+ msg += outdated === 1 ? ( localize(9846, "{0} requires update", outdated)) : ( localize(9847, "{0} require update", outdated));
904
+ }
905
+ if (outdated > 0 && actionRequired.length > 0) {
906
+ msg += ", ";
907
+ }
908
+ if (actionRequired.length) {
909
+ msg += actionRequired.length === 1 ? ( localize(9848, "{0} requires restart", actionRequired.length)) : ( localize(9849, "{0} require restart", actionRequired.length));
910
+ }
911
+ badge = ( new NumberBadge(newBadgeNumber, () => msg));
912
+ }
913
+ }
914
+ if (badge) {
915
+ this.badgeHandle.value = this.activityService.showViewContainerActivity(VIEWLET_ID, {
916
+ badge
917
+ });
918
+ }
919
+ }
920
+ };
921
+ StatusUpdater = ( __decorate([( __param(0, IActivityService)), ( __param(1, IExtensionsWorkbenchService)), ( __param(2, IWorkbenchExtensionEnablementService)), ( __param(3, IConfigurationService))], StatusUpdater));
922
+ let MaliciousExtensionChecker = class MaliciousExtensionChecker {
923
+ constructor(
924
+ extensionsManagementService,
925
+ extensionsWorkbenchService,
926
+ hostService,
927
+ logService,
928
+ notificationService,
929
+ commandService
930
+ ) {
931
+ this.extensionsManagementService = extensionsManagementService;
932
+ this.extensionsWorkbenchService = extensionsWorkbenchService;
933
+ this.hostService = hostService;
934
+ this.logService = logService;
935
+ this.notificationService = notificationService;
936
+ this.commandService = commandService;
937
+ this.loopCheckForMaliciousExtensions();
938
+ }
939
+ loopCheckForMaliciousExtensions() {
940
+ this.checkForMaliciousExtensions().then(() => timeout(1000 * 60 * 5)).then(() => this.loopCheckForMaliciousExtensions());
941
+ }
942
+ async checkForMaliciousExtensions() {
943
+ try {
944
+ const maliciousExtensions = [];
945
+ let shouldRestartExtensions = false;
946
+ let shouldReloadWindow = false;
947
+ for (const extension of this.extensionsWorkbenchService.installed) {
948
+ if (extension.isMalicious && extension.local) {
949
+ maliciousExtensions.push([extension.local, extension.maliciousInfoLink]);
950
+ shouldRestartExtensions = shouldRestartExtensions || extension.runtimeState?.action === ExtensionRuntimeActionType.RestartExtensions;
951
+ shouldReloadWindow = shouldReloadWindow || extension.runtimeState?.action === ExtensionRuntimeActionType.ReloadWindow;
952
+ }
953
+ }
954
+ if (maliciousExtensions.length) {
955
+ await this.extensionsManagementService.uninstallExtensions(( maliciousExtensions.map(e => ({
956
+ extension: e[0],
957
+ options: {
958
+ remove: true
959
+ }
960
+ }))));
961
+ for (const [extension, link] of maliciousExtensions) {
962
+ const buttons = [];
963
+ if (shouldRestartExtensions || shouldReloadWindow) {
964
+ buttons.push({
965
+ label: shouldRestartExtensions ? ( localize(9850, "Restart Extensions")) : ( localize(9851, "Reload Now")),
966
+ run: () => shouldRestartExtensions ? this.extensionsWorkbenchService.updateRunningExtensions() : this.hostService.reload()
967
+ });
968
+ }
969
+ if (link) {
970
+ buttons.push({
971
+ label: ( localize(9852, "Learn More")),
972
+ run: () => this.commandService.executeCommand("vscode.open", ( URI.parse(link)))
973
+ });
974
+ }
975
+ this.notificationService.prompt(Severity$1.Warning, ( localize(
976
+ 9853,
977
+ "The extension '{0}' was found to be problematic and has been uninstalled",
978
+ extension.manifest.displayName || extension.identifier.id
979
+ )), buttons, {
980
+ sticky: true,
981
+ priority: NotificationPriority.URGENT
982
+ });
983
+ }
984
+ }
985
+ } catch (err) {
986
+ this.logService.error(err);
987
+ }
988
+ }
989
+ };
990
+ MaliciousExtensionChecker = ( __decorate([( __param(0, IExtensionManagementService)), ( __param(1, IExtensionsWorkbenchService)), ( __param(2, IHostService)), ( __param(3, ILogService)), ( __param(4, INotificationService)), ( __param(5, ICommandService))], MaliciousExtensionChecker));
991
+ let ExtensionMarketplaceStatusUpdater = class ExtensionMarketplaceStatusUpdater extends Disposable {
992
+ constructor(activityService, extensionGalleryManifestService) {
993
+ super();
994
+ this.activityService = activityService;
995
+ this.extensionGalleryManifestService = extensionGalleryManifestService;
996
+ this.badgeHandle = this._register(( new MutableDisposable()));
997
+ this.accountBadgeDisposable = this._register(( new MutableDisposable()));
998
+ this.updateBadge();
999
+ this._register(
1000
+ this.extensionGalleryManifestService.onDidChangeExtensionGalleryManifestStatus(() => this.updateBadge())
1001
+ );
1002
+ }
1003
+ async updateBadge() {
1004
+ this.badgeHandle.clear();
1005
+ const status = this.extensionGalleryManifestService.extensionGalleryManifestStatus;
1006
+ let badge;
1007
+ switch (status) {
1008
+ case ExtensionGalleryManifestStatus.RequiresSignIn:
1009
+ badge = ( new NumberBadge(1, () => ( localize(9854, "Sign in required to access marketplace"))));
1010
+ break;
1011
+ case ExtensionGalleryManifestStatus.AccessDenied:
1012
+ badge = ( new WarningBadge(() => ( localize(9855, "Access denied to marketplace"))));
1013
+ break;
1014
+ }
1015
+ if (badge) {
1016
+ this.badgeHandle.value = this.activityService.showViewContainerActivity(VIEWLET_ID, {
1017
+ badge
1018
+ });
1019
+ }
1020
+ this.accountBadgeDisposable.clear();
1021
+ if (status === ExtensionGalleryManifestStatus.RequiresSignIn) {
1022
+ const badge = ( new NumberBadge(1, () => ( localize(9856, "Sign in to access Marketplace"))));
1023
+ this.accountBadgeDisposable.value = this.activityService.showAccountsActivity({
1024
+ badge
1025
+ });
1026
+ }
1027
+ }
1028
+ };
1029
+ ExtensionMarketplaceStatusUpdater = ( __decorate([( __param(0, IActivityService)), ( __param(1, IExtensionGalleryManifestService))], ExtensionMarketplaceStatusUpdater));
1030
+
1031
+ export { BuiltInExtensionsContext, ExtensionMarketplaceStatusUpdater, ExtensionsSearchValueContext, ExtensionsSortByContext, ExtensionsViewPaneContainer, ExtensionsViewletViewsContribution, MaliciousExtensionChecker, RecommendedExtensionsContext, SearchHasTextContext, SearchMarketplaceExtensionsContext, StatusUpdater };