@codingame/monaco-vscode-katex-common 26.2.2 → 28.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/package.json +2 -2
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.d.ts +10 -4
- package/vscode/src/vs/platform/actionWidget/browser/actionWidgetDropdown.js +37 -11
- package/vscode/src/vs/platform/actions/browser/buttonbar.d.ts +3 -0
- package/vscode/src/vs/platform/actions/browser/buttonbar.js +15 -4
- package/vscode/src/vs/platform/mcp/common/modelContextProtocolApps.d.ts +576 -0
- package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityProvider.js +15 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.js +176 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +127 -64
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatTitleActions.js +12 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionApprovalModel.js +106 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +105 -29
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +69 -43
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +35 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +187 -78
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +138 -32
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.d.ts +23 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgets.js +394 -87
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatImplicitContext.js +28 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/attachments/implicitContextAttachment.js +38 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingActions.js +113 -116
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorActions.js +16 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorOverlay.js +8 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationWidget.js +14 -14
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingEditorOverlay.css +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/media/chatEditingExplanationWidget.css +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +30 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +250 -132
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.d.ts +1 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -110
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAgentCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAnonymousRateLimitedPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatAttachmentsContentPart.js +9 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.d.ts +2 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatChangesSummaryPart.js +7 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCodeCitationContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.js +22 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleMarkdownContentPart.js +11 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCommandContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatConfirmationWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.d.ts +59 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts.js +29 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.d.ts +0 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDiffBlockPart.js +0 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatDisabledClaudeHooksContentPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatElicitationContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatExtensionsContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +7 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.d.ts +0 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatInlineAnchorWidget.js +26 -27
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.d.ts +4 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +53 -20
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownTableScrolling.js +55 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMcpServersInteractionContentPart.js +8 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMultiDiffContentPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.js +11 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.d.ts +62 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +414 -129
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuotaExceededPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.d.ts +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +19 -12
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatResourceGroupWidget.js +263 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.d.ts +14 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSubagentContentPart.js +98 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatSuggestNextWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTaskContentPart.js +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTextEditContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +252 -80
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts +29 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js +246 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js +39 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.d.ts +6 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolInputOutputContentPart.js +36 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.d.ts +3 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatToolOutputContentSubPart.js +6 -260
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTreeContentPart.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatWorkspaceEditContentPart.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.d.ts +5 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/codeBlockPart.js +42 -37
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatCodeBlockPill.css +12 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatConfirmationWidget.css +65 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatHookContentPart.css +9 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatInlineAnchorWidget.css +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatQuestionCarousel.css +356 -415
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTerminalToolProgressPart.css +14 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatThinkingContent.css +102 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/chatTipContent.css +68 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/media/codeBlockPart.css +48 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.d.ts +5 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/abstractToolConfirmationSubPart.js +47 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatExtensionsInstallToolSubPart.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +1 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.js +0 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppModel.js +57 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.d.ts +5 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +24 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatResultListSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatSimpleToolProgressPart.js +103 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolConfirmationSubPart.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +44 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +85 -89
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +3 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +4 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.js +41 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolOutputPart.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPartUtilities.js +3 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolPostExecuteConfirmationPart.js +6 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolProgressPart.js +13 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolStreamingSubPart.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatDragAndDrop.js +11 -11
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.d.ts +21 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +341 -88
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListWidget.js +13 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.d.ts +35 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatQuestionCarouselAutoReply.js +440 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +437 -241
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatFollowups.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.d.ts +77 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +521 -284
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPickerActionItem.js +7 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +664 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.d.ts +104 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelSelectionLogic.js +127 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.js +57 -16
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.d.ts +4 -7
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +89 -49
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.d.ts +28 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem2.js +87 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/permissionPickerActionItem.js +213 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +15 -17
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +7 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +563 -140
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +35 -26
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageDetails.js +26 -23
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +26 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +145 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageDetails.css +36 -50
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +35 -15
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/annotations.js +127 -30
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/common/widget/chatColors.js +20 -14
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.d.ts +6 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +96 -34
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.d.ts +11 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +68 -27
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatEditorAffordance.js +125 -13
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.d.ts +8 -11
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatGutterAffordance.js +54 -45
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.d.ts +11 -10
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatOverlayWidget.js +172 -112
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +5 -5
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatZoneWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChat.css +2 -44
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +28 -4
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +84 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +9 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -41
- package/vscode/src/vs/workbench/contrib/interactive/browser/replInputHintContentWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/mcp/common/modelContextProtocolApps.d.ts +1 -548
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindWidget.js +2 -2
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/replNotebook/browser/replEditorInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminal/browser/chatTerminalCommandMirror.js +6 -10
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modelPickerActionItem.js +0 -187
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type MarkdownRenderOptions } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer";
|
|
2
2
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event";
|
|
3
4
|
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
4
5
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
5
6
|
import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
|
|
@@ -21,7 +22,7 @@ import { CodeBlockModelCollection } from "../../../common/widget/codeBlockModelC
|
|
|
21
22
|
import { IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
22
23
|
import { ICodeBlockRenderOptions } from "./codeBlockPart.js";
|
|
23
24
|
import { EditorPool } from "./chatContentCodePools.js";
|
|
24
|
-
import { IChatContentPart, IChatContentPartRenderContext } from "
|
|
25
|
+
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
25
26
|
export interface IChatMarkdownContentPartOptions {
|
|
26
27
|
readonly codeBlockRenderOptions?: ICodeBlockRenderOptions;
|
|
27
28
|
readonly allowInlineDiffs?: boolean;
|
|
@@ -45,6 +46,8 @@ export declare class ChatMarkdownContentPart extends Disposable implements IChat
|
|
|
45
46
|
private static ID_POOL;
|
|
46
47
|
readonly codeblocksPartId: string;
|
|
47
48
|
readonly domNode: HTMLElement;
|
|
49
|
+
private readonly _onDidChangeHeight;
|
|
50
|
+
readonly onDidChangeHeight: Event<void>;
|
|
48
51
|
private readonly allRefs;
|
|
49
52
|
private readonly _codeblocks;
|
|
50
53
|
get codeblocks(): IChatCodeBlockInfo[];
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
3
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
4
|
-
import { $ as $$1, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { $ as $$1, clearNode, getWindow, DisposableResizeObserver, isHTMLElement, addDisposableListener, EventType, EventHelper } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
5
|
import { allowedMarkdownHtmlAttributes } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
6
6
|
import { StandardMouseEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/mouseEvent';
|
|
7
7
|
import { status } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
8
8
|
import { HoverStyle } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover';
|
|
9
9
|
import { HoverPosition } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hoverWidget';
|
|
10
10
|
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
11
|
+
import { wrapTablesWithScrollable } from './chatMarkdownTableScrolling.js';
|
|
11
12
|
import { coalesce } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
|
|
12
13
|
import { findLast } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arraysFind';
|
|
13
14
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
14
15
|
import { Lazy } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lazy';
|
|
15
16
|
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
17
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
16
18
|
import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
|
|
17
19
|
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
18
20
|
import { equalsIgnoreCase } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
|
|
@@ -94,12 +96,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
94
96
|
this.instantiationService = instantiationService;
|
|
95
97
|
this.aiEditTelemetryService = aiEditTelemetryService;
|
|
96
98
|
this.codeblocksPartId = String(++ChatMarkdownContentPart_1.ID_POOL);
|
|
99
|
+
this._onDidChangeHeight = this._register(( new Emitter()));
|
|
100
|
+
this.onDidChangeHeight = this._onDidChangeHeight.event;
|
|
97
101
|
this.allRefs = [];
|
|
98
102
|
this._codeblocks = [];
|
|
99
103
|
this.mathLayoutParticipants = ( new Set());
|
|
100
104
|
const element = context.element;
|
|
101
105
|
const inUndoStop = findLast(context.content, e => e.kind === "undoStop", context.contentIndex)?.id;
|
|
102
|
-
const orderedDisposablesList = [];
|
|
103
106
|
let globalCodeBlockIndexStart = codeBlockStartIndex;
|
|
104
107
|
let thisPartCodeBlockIndexStart = 0;
|
|
105
108
|
this.domNode = $("div.chat-markdown-part");
|
|
@@ -110,10 +113,20 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
115
|
const enableMath = configurationService.getValue(ChatConfiguration.EnableMath);
|
|
116
|
+
const renderStore = this._register(( new MutableDisposable()));
|
|
113
117
|
const doRenderMarkdown = () => {
|
|
114
118
|
if (this._store.isDisposed) {
|
|
115
119
|
return;
|
|
116
120
|
}
|
|
121
|
+
const store = ( new DisposableStore());
|
|
122
|
+
renderStore.value = store;
|
|
123
|
+
clearNode(this.domNode);
|
|
124
|
+
this.allRefs.length = 0;
|
|
125
|
+
this._codeblocks.length = 0;
|
|
126
|
+
this.mathLayoutParticipants.clear();
|
|
127
|
+
globalCodeBlockIndexStart = codeBlockStartIndex;
|
|
128
|
+
thisPartCodeBlockIndexStart = 0;
|
|
129
|
+
const orderedDisposablesList = [];
|
|
117
130
|
const markedExtensions = enableMath ? coalesce([MarkedKatexSupport.getExtension(getWindow(context.container), {
|
|
118
131
|
throwOnError: false
|
|
119
132
|
})]) : [];
|
|
@@ -121,7 +134,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
121
134
|
gfm: true,
|
|
122
135
|
breaks: true
|
|
123
136
|
};
|
|
124
|
-
const result =
|
|
137
|
+
const result = store.add(renderer.render(markdown.content, {
|
|
125
138
|
sanitizerConfig: MarkedKatexSupport.getSanitizerOptions({
|
|
126
139
|
allowedTags: allowedChatMarkdownHtmlTags,
|
|
127
140
|
allowedAttributes: allowedMarkdownHtmlAttributes
|
|
@@ -170,7 +183,7 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
170
183
|
}
|
|
171
184
|
}
|
|
172
185
|
if (languageId === "vscode-extensions") {
|
|
173
|
-
const chatExtensions =
|
|
186
|
+
const chatExtensions = store.add(instantiationService.createInstance(ChatExtensionsContentPart, {
|
|
174
187
|
kind: "extensions",
|
|
175
188
|
extensions: text.split(",")
|
|
176
189
|
}));
|
|
@@ -186,7 +199,13 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
186
199
|
try {
|
|
187
200
|
const parsedBody = parseLocalFileData(text);
|
|
188
201
|
range = parsedBody.range && Range.lift(parsedBody.range);
|
|
189
|
-
|
|
202
|
+
const modelRefPromise = this.textModelService.createModelReference(parsedBody.uri);
|
|
203
|
+
textModel = modelRefPromise.then(ref => {
|
|
204
|
+
if (!store.isDisposed) {
|
|
205
|
+
store.add(ref);
|
|
206
|
+
}
|
|
207
|
+
return ref.object.textEditorModel;
|
|
208
|
+
});
|
|
190
209
|
} catch (e) {
|
|
191
210
|
return $("div");
|
|
192
211
|
}
|
|
@@ -320,11 +339,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
320
339
|
})));
|
|
321
340
|
}
|
|
322
341
|
const markdownDecorationsRenderer = instantiationService.createInstance(ChatMarkdownDecorationsRenderer);
|
|
323
|
-
|
|
342
|
+
store.add(
|
|
324
343
|
markdownDecorationsRenderer.walkTreeAndAnnotateReferenceLinks(markdown, result.element)
|
|
325
344
|
);
|
|
326
345
|
const layoutParticipants = ( new Lazy(() => {
|
|
327
|
-
const observer =
|
|
346
|
+
const observer = store.add(( new DisposableResizeObserver(() => this.mathLayoutParticipants.forEach(layout => layout()))));
|
|
328
347
|
observer.observe(this.domNode);
|
|
329
348
|
return this.mathLayoutParticipants;
|
|
330
349
|
}));
|
|
@@ -343,16 +362,16 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
343
362
|
});
|
|
344
363
|
scrollable.scanDomNode();
|
|
345
364
|
}
|
|
346
|
-
orderedDisposablesList.
|
|
365
|
+
orderedDisposablesList.push(wrapTablesWithScrollable(this.domNode, layoutParticipants));
|
|
366
|
+
orderedDisposablesList.reverse().forEach(d => store.add(d));
|
|
347
367
|
};
|
|
368
|
+
doRenderMarkdown();
|
|
348
369
|
if (enableMath && !MarkedKatexSupport.getExtension(getWindow(context.container))) {
|
|
349
|
-
MarkedKatexSupport.loadExtension(getWindow(context.container)).
|
|
350
|
-
console.error("Failed to load MarkedKatexSupport extension:", e);
|
|
351
|
-
}).finally(() => {
|
|
370
|
+
MarkedKatexSupport.loadExtension(getWindow(context.container)).then(() => {
|
|
352
371
|
doRenderMarkdown();
|
|
372
|
+
}).catch(e => {
|
|
373
|
+
console.error("Failed to load MarkedKatexSupport extension:", e);
|
|
353
374
|
});
|
|
354
|
-
} else {
|
|
355
|
-
doRenderMarkdown();
|
|
356
375
|
}
|
|
357
376
|
}
|
|
358
377
|
renderCodeBlockPill(sessionResource, requestId, inUndoStop, codemapperUri) {
|
|
@@ -376,7 +395,11 @@ let ChatMarkdownContentPart = class ChatMarkdownContentPart extends Disposable {
|
|
|
376
395
|
}).then(e => {
|
|
377
396
|
this._codeblocks[data.codeBlockPartIndex].codemapperUri = e.codemapperUri;
|
|
378
397
|
});
|
|
379
|
-
editorInfo.render(data, currentWidth)
|
|
398
|
+
editorInfo.render(data, currentWidth).then(() => {
|
|
399
|
+
if (!this._store.isDisposed && isRequestVM(data.element)) {
|
|
400
|
+
this._onDidChangeHeight.fire();
|
|
401
|
+
}
|
|
402
|
+
});
|
|
380
403
|
return ref;
|
|
381
404
|
}
|
|
382
405
|
hasSameContent(other) {
|
|
@@ -466,6 +489,16 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
466
489
|
this.pillElement.role = "button";
|
|
467
490
|
this.element.appendChild(this.statusIndicatorContainer);
|
|
468
491
|
this.element.appendChild(this.pillElement);
|
|
492
|
+
const updateCheckmarks = () => this.element.classList.toggle(
|
|
493
|
+
"show-checkmarks",
|
|
494
|
+
!!this.configurationService.getValue(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)
|
|
495
|
+
);
|
|
496
|
+
updateCheckmarks();
|
|
497
|
+
this._register(this.configurationService.onDidChangeConfiguration(e => {
|
|
498
|
+
if (e.affectsConfiguration(AccessibilityWorkbenchSettingId.ShowChatCheckmarks)) {
|
|
499
|
+
updateCheckmarks();
|
|
500
|
+
}
|
|
501
|
+
}));
|
|
469
502
|
this.registerListeners();
|
|
470
503
|
}
|
|
471
504
|
registerListeners() {
|
|
@@ -559,7 +592,7 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
559
592
|
statusIconEl.classList.add(...statusIconClasses);
|
|
560
593
|
const entry = editSession.readEntry(uri, r);
|
|
561
594
|
const rwRatio = Math.floor((entry?.rewriteRatio.read(r) || 0) * 100);
|
|
562
|
-
statusLabelEl.textContent = ( localize(
|
|
595
|
+
statusLabelEl.textContent = ( localize(6520, "Applying edits"));
|
|
563
596
|
const showAnimation = this.configurationService.getValue(ChatConfiguration.ShowCodeBlockProgressAnimation);
|
|
564
597
|
if (showAnimation) {
|
|
565
598
|
progressFill.style.width = `${rwRatio}%`;
|
|
@@ -568,13 +601,13 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
568
601
|
} else {
|
|
569
602
|
progressFill.style.width = "0%";
|
|
570
603
|
this.pillElement.classList.remove("progress-filling");
|
|
571
|
-
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(
|
|
604
|
+
labelDetail.textContent = rwRatio === 0 || !rwRatio ? ( localize(6521, "Generating edits...")) : ( localize(6522, "({0}%)...", rwRatio));
|
|
572
605
|
}
|
|
573
606
|
} else {
|
|
574
607
|
const statusCodeicon = Codicon.check;
|
|
575
608
|
statusIconClasses = ThemeIcon.asClassNameArray(statusCodeicon);
|
|
576
609
|
statusIconEl.classList.add(...statusIconClasses);
|
|
577
|
-
statusLabelEl.textContent = ( localize(
|
|
610
|
+
statusLabelEl.textContent = ( localize(6523, "Edited"));
|
|
578
611
|
const fileKind = uri.path.endsWith("/") ? FileKind.FOLDER : FileKind.FILE;
|
|
579
612
|
pillIconClasses = getIconClasses(this.modelService, this.languageService, uri, fileKind);
|
|
580
613
|
iconEl.classList.add(...pillIconClasses);
|
|
@@ -594,10 +627,10 @@ let CollapsedCodeBlock = class CollapsedCodeBlock extends Disposable {
|
|
|
594
627
|
this.currentDiff = changes;
|
|
595
628
|
labelAdded.textContent = `+${changes.added}`;
|
|
596
629
|
labelRemoved.textContent = `-${changes.removed}`;
|
|
597
|
-
const insertionsFragment = changes.added === 1 ? ( localize(
|
|
598
|
-
const deletionsFragment = changes.removed === 1 ? ( localize(
|
|
630
|
+
const insertionsFragment = changes.added === 1 ? ( localize(6524, "1 insertion")) : ( localize(6525, "{0} insertions", changes.added));
|
|
631
|
+
const deletionsFragment = changes.removed === 1 ? ( localize(6526, "1 deletion")) : ( localize(6527, "{0} deletions", changes.removed));
|
|
599
632
|
const summary = ( localize(
|
|
600
|
-
|
|
633
|
+
6528,
|
|
601
634
|
"Edited {0}, {1}, {2}",
|
|
602
635
|
iconText,
|
|
603
636
|
insertionsFragment,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Lazy } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lazy";
|
|
2
|
+
import { DisposableStore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
3
|
+
/**
|
|
4
|
+
* Finds all tables in `domNode` and wraps each in a {@link DomScrollableElement}
|
|
5
|
+
* so they scroll horizontally with the custom VS Code scrollbar instead of the
|
|
6
|
+
* native one. Each wrapped table is pushed onto `orderedDisposablesList` and a
|
|
7
|
+
* `scanDomNode` callback is registered on `layoutParticipants` so the scrollbar
|
|
8
|
+
* re-measures whenever the container is resized.
|
|
9
|
+
*
|
|
10
|
+
* Each column's `min-width` is also set to the maximum character count across
|
|
11
|
+
* all cells in that column (in `ch` units), preventing short-content columns
|
|
12
|
+
* like "001" from being squeezed to one character wide. Single-character columns
|
|
13
|
+
* are left unchanged. This is layout-free: only `textContent` lengths are read.
|
|
14
|
+
*/
|
|
15
|
+
export declare function wrapTablesWithScrollable(domNode: HTMLElement, layoutParticipants: Lazy<Set<() => void>>): DisposableStore;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
|
|
2
|
+
import { isHTMLElement, createElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
3
|
+
import { DomScrollableElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
4
|
+
import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
5
|
+
import { ScrollbarVisibility } from '@codingame/monaco-vscode-api/vscode/vs/base/common/scrollable';
|
|
6
|
+
|
|
7
|
+
function wrapTablesWithScrollable(domNode, layoutParticipants) {
|
|
8
|
+
const store = ( new DisposableStore());
|
|
9
|
+
for (const table of domNode.querySelectorAll("table")) {
|
|
10
|
+
if (!isHTMLElement(table)) {
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
applyTableColumnMinWidths(table);
|
|
14
|
+
const parent = table.parentElement;
|
|
15
|
+
const nextSibling = table.nextSibling;
|
|
16
|
+
const tableContainer = createElement("div");
|
|
17
|
+
tableContainer.appendChild(table);
|
|
18
|
+
const scrollable = store.add(( new DomScrollableElement(tableContainer, {
|
|
19
|
+
vertical: ScrollbarVisibility.Hidden,
|
|
20
|
+
horizontal: ScrollbarVisibility.Auto
|
|
21
|
+
})));
|
|
22
|
+
const scrollNode = scrollable.getDomNode();
|
|
23
|
+
scrollNode.classList.add("rendered-markdown-table-scroll-wrapper");
|
|
24
|
+
parent?.insertBefore(scrollNode, nextSibling);
|
|
25
|
+
layoutParticipants.value.add(() => {
|
|
26
|
+
scrollable.scanDomNode();
|
|
27
|
+
});
|
|
28
|
+
scrollable.scanDomNode();
|
|
29
|
+
}
|
|
30
|
+
return store;
|
|
31
|
+
}
|
|
32
|
+
const TABLE_COLUMN_MIN_WIDTH_CAP_CH = 3;
|
|
33
|
+
function applyTableColumnMinWidths(table) {
|
|
34
|
+
const rows = table.rows;
|
|
35
|
+
const colMaxChars = [];
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
for (let c = 0; c < row.cells.length; c++) {
|
|
38
|
+
const len = row.cells[c].textContent?.length ?? 0;
|
|
39
|
+
if (len > (colMaxChars[c] ?? 0)) {
|
|
40
|
+
colMaxChars[c] = len;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const firstRow = rows[0];
|
|
45
|
+
if (firstRow) {
|
|
46
|
+
for (let c = 0; c < firstRow.cells.length; c++) {
|
|
47
|
+
const minCh = colMaxChars[c];
|
|
48
|
+
if (minCh !== undefined && minCh > 1) {
|
|
49
|
+
firstRow.cells[c].style.minWidth = Math.min(minCh, TABLE_COLUMN_MIN_WIDTH_CAP_CH) + "ch";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { wrapTablesWithScrollable };
|
|
@@ -5,7 +5,7 @@ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/
|
|
|
5
5
|
import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
|
|
6
6
|
import { IChatMcpServersStarting, IChatMcpServersStartingSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
7
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
8
|
-
import { IChatContentPart, IChatContentPartRenderContext } from "
|
|
8
|
+
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
9
9
|
export declare class ChatMcpServersInteractionContentPart extends Disposable implements IChatContentPart {
|
|
10
10
|
private readonly data;
|
|
11
11
|
private readonly context;
|
|
@@ -96,19 +96,19 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
96
96
|
}
|
|
97
97
|
updateDetailedProgress(state) {
|
|
98
98
|
const skipText = createMarkdownCommandLink({
|
|
99
|
-
title: ( localize(
|
|
99
|
+
title: ( localize(6529, "Skip?")),
|
|
100
100
|
id: McpCommandIds.SkipCurrentAutostart
|
|
101
101
|
});
|
|
102
102
|
let content;
|
|
103
103
|
if (state.starting.length === 0) {
|
|
104
104
|
content = ( new MarkdownString(undefined, {
|
|
105
105
|
isTrusted: true
|
|
106
|
-
})).appendText(( localize(
|
|
106
|
+
})).appendText(( localize(6530, "Activating MCP extensions...")) + " ").appendMarkdown(skipText);
|
|
107
107
|
} else {
|
|
108
108
|
const serverLinks = this.createServerCommandLinks(state.starting);
|
|
109
109
|
content = ( new MarkdownString(undefined, {
|
|
110
110
|
isTrusted: true
|
|
111
|
-
})).appendMarkdown(( localize(
|
|
111
|
+
})).appendMarkdown(( localize(6531, "Starting MCP servers {0}...", serverLinks)) + " ").appendMarkdown(skipText);
|
|
112
112
|
}
|
|
113
113
|
if (this.workingProgressPart) {
|
|
114
114
|
this.workingProgressPart.updateMessage(content);
|
|
@@ -119,7 +119,8 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
119
119
|
}, this._markdownRendererService, this.context, true,
|
|
120
120
|
true,
|
|
121
121
|
undefined,
|
|
122
|
-
undefined
|
|
122
|
+
undefined,
|
|
123
|
+
false));
|
|
123
124
|
this.domNode.appendChild(this.workingProgressPart.domNode);
|
|
124
125
|
}
|
|
125
126
|
}
|
|
@@ -146,12 +147,12 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
146
147
|
const count = serversRequiringInteraction.length;
|
|
147
148
|
const links = this.createServerCommandLinks(serversRequiringInteraction);
|
|
148
149
|
const content = count === 1 ? ( localize(
|
|
149
|
-
|
|
150
|
+
6532,
|
|
150
151
|
"The MCP server {0} may have new tools and requires interaction to start. [Start it now?]({1})",
|
|
151
152
|
links,
|
|
152
153
|
"#start"
|
|
153
154
|
)) : ( localize(
|
|
154
|
-
|
|
155
|
+
6533,
|
|
155
156
|
"The MCP servers {0} may have new tools and require interaction to start. [Start them now?]({1})",
|
|
156
157
|
links,
|
|
157
158
|
"#start"
|
|
@@ -193,7 +194,7 @@ let ChatMcpServersInteractionContentPart = class ChatMcpServersInteractionConten
|
|
|
193
194
|
const serversToStart = state.serversRequiringInteraction;
|
|
194
195
|
for (let i = 0; i < serversToStart.length; i++) {
|
|
195
196
|
const serverInfo = serversToStart[i];
|
|
196
|
-
startLink.textContent = ( localize(
|
|
197
|
+
startLink.textContent = ( localize(6534, "Starting {0}...", serverInfo.label));
|
|
197
198
|
const server = this.mcpService.servers.get().find(s => s.definition.id === serverInfo.id);
|
|
198
199
|
if (server) {
|
|
199
200
|
await startServerAndWaitForLiveTools(server, {
|
|
@@ -6,7 +6,7 @@ import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench
|
|
|
6
6
|
import { IChatMultiDiffData, IChatMultiDiffDataSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
7
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
8
8
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
9
|
-
import { IChatContentPart } from "
|
|
9
|
+
import { IChatContentPart } from "./chatContentParts.js";
|
|
10
10
|
export declare class ChatMultiDiffContentPart extends Disposable implements IChatContentPart {
|
|
11
11
|
private readonly content;
|
|
12
12
|
private readonly _element;
|
|
@@ -64,7 +64,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
64
64
|
const viewListButton = ( new ButtonWithIcon(viewListButtonContainer, {}));
|
|
65
65
|
this._register(autorun(reader => {
|
|
66
66
|
const fileCount = this.diffData.read(reader).resources.length;
|
|
67
|
-
viewListButton.label = fileCount === 1 ? ( localize(
|
|
67
|
+
viewListButton.label = fileCount === 1 ? ( localize(6535, "Changed 1 file")) : ( localize(6536, "Changed {0} files", fileCount));
|
|
68
68
|
}));
|
|
69
69
|
const setExpansionState = () => {
|
|
70
70
|
viewListButton.icon = this.isCollapsed ? Codicon.chevronRight : Codicon.chevronDown;
|
|
@@ -86,7 +86,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
86
86
|
renderViewAllFileChangesButton(container) {
|
|
87
87
|
const button = container.appendChild($(".chat-view-changes-icon"));
|
|
88
88
|
button.classList.add(...ThemeIcon.asClassNameArray(Codicon.diffMultiple));
|
|
89
|
-
button.title = ( localize(
|
|
89
|
+
button.title = ( localize(6537, "Open Changes"));
|
|
90
90
|
return addDisposableListener(button, "click", e => {
|
|
91
91
|
const source = ( URI.parse(`multi-diff-editor:${( ( new Date()).getMilliseconds().toString()) + ( Math.random().toString())}`));
|
|
92
92
|
const {
|
|
@@ -143,7 +143,7 @@ let ChatMultiDiffContentPart = class ChatMultiDiffContentPart extends Disposable
|
|
|
143
143
|
alwaysConsumeMouseWheel: false,
|
|
144
144
|
accessibilityProvider: {
|
|
145
145
|
getAriaLabel: element => element.uri.path,
|
|
146
|
-
getWidgetAriaLabel: () => ( localize(
|
|
146
|
+
getWidgetAriaLabel: () => ( localize(6538, "File Changes"))
|
|
147
147
|
}
|
|
148
148
|
})
|
|
149
149
|
);
|
|
@@ -259,7 +259,7 @@ class ChatMultiDiffListRenderer {
|
|
|
259
259
|
const removedElement = changesSummary.appendChild($(".deletions"));
|
|
260
260
|
removedElement.textContent = `-${element.diff.removed}`;
|
|
261
261
|
changesSummary.setAttribute("aria-label", ( localize(
|
|
262
|
-
|
|
262
|
+
6539,
|
|
263
263
|
"{0} lines added, {1} lines removed",
|
|
264
264
|
element.diff.added,
|
|
265
265
|
element.diff.removed
|
|
@@ -6,7 +6,7 @@ import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
|
|
|
6
6
|
import { IChatProgressMessage, IChatTask, IChatTaskSerialized, IChatToolInvocation, IChatToolInvocationSerialized } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
7
7
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
8
8
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
9
|
-
import { IChatContentPart, IChatContentPartRenderContext } from "
|
|
9
|
+
import { IChatContentPart, IChatContentPartRenderContext } from "./chatContentParts.js";
|
|
10
10
|
import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
|
|
11
11
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
12
12
|
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
@@ -21,10 +21,11 @@ export declare class ChatProgressContentPart extends Disposable implements IChat
|
|
|
21
21
|
private readonly showSpinner;
|
|
22
22
|
private readonly isHidden;
|
|
23
23
|
private readonly renderedMessage;
|
|
24
|
+
private readonly _fileWidgetStore;
|
|
24
25
|
private currentContent;
|
|
25
26
|
constructor(progress: IChatProgressMessage | IChatTask | IChatTaskSerialized | {
|
|
26
27
|
content: IMarkdownString;
|
|
27
|
-
}, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
|
|
28
|
+
}, chatContentMarkdownRenderer: IMarkdownRenderer, context: IChatContentPartRenderContext, forceShowSpinner: boolean | undefined, forceShowMessage: boolean | undefined, icon: ThemeIcon | undefined, toolInvocation: IChatToolInvocation | IChatToolInvocationSerialized | undefined, shimmer: boolean | undefined, instantiationService: IInstantiationService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
|
|
28
29
|
updateMessage(content: MarkdownString): void;
|
|
29
30
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
30
31
|
private createApprovalMessage;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
3
|
import { $, append } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
|
+
import { renderAsPlaintext } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/markdownRenderer';
|
|
4
5
|
import { alert } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/aria/aria';
|
|
5
6
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
6
7
|
import { MarkdownString } from '@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent';
|
|
7
|
-
import {
|
|
8
|
+
import { stripIcons } from '@codingame/monaco-vscode-api/vscode/vs/base/common/iconLabels';
|
|
9
|
+
import { Disposable, MutableDisposable, DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
8
10
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
9
11
|
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
10
12
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
@@ -28,6 +30,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
28
30
|
forceShowMessage,
|
|
29
31
|
icon,
|
|
30
32
|
toolInvocation,
|
|
33
|
+
shimmer,
|
|
31
34
|
instantiationService,
|
|
32
35
|
chatMarkdownAnchorService,
|
|
33
36
|
configurationService
|
|
@@ -39,6 +42,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
39
42
|
this.chatMarkdownAnchorService = chatMarkdownAnchorService;
|
|
40
43
|
this.configurationService = configurationService;
|
|
41
44
|
this.renderedMessage = this._register(( new MutableDisposable()));
|
|
45
|
+
this._fileWidgetStore = this._register(( new DisposableStore()));
|
|
42
46
|
this.currentContent = progress.content;
|
|
43
47
|
const followingContent = context.content.slice(context.contentIndex + 1);
|
|
44
48
|
this.showSpinner = forceShowSpinner ?? shouldShowSpinner(followingContent, context.element);
|
|
@@ -47,23 +51,28 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
47
51
|
this.domNode = $("");
|
|
48
52
|
return;
|
|
49
53
|
}
|
|
50
|
-
if (this.showSpinner &&
|
|
51
|
-
alert(progress.content
|
|
54
|
+
if (this.showSpinner && this.configurationService.getValue(AccessibilityWorkbenchSettingId.VerboseChatProgressUpdates)) {
|
|
55
|
+
alert(stripIcons(renderAsPlaintext(progress.content)));
|
|
52
56
|
}
|
|
53
|
-
const
|
|
57
|
+
const isLoadingIcon = icon && ThemeIcon.isEqual(icon, ThemeIcon.modify(Codicon.loading, "spin"));
|
|
58
|
+
const useShimmer = (shimmer ?? (!icon || isLoadingIcon)) && this.showSpinner;
|
|
59
|
+
const codicon = useShimmer ? Codicon.check : (icon ?? (this.showSpinner ? ThemeIcon.modify(Codicon.loading, "spin") : Codicon.check));
|
|
54
60
|
const result = this.chatContentMarkdownRenderer.render(progress.content);
|
|
55
61
|
result.element.classList.add("progress-step");
|
|
56
62
|
renderFileWidgets(
|
|
57
63
|
result.element,
|
|
58
64
|
this.instantiationService,
|
|
59
65
|
this.chatMarkdownAnchorService,
|
|
60
|
-
this.
|
|
66
|
+
this._fileWidgetStore
|
|
61
67
|
);
|
|
62
68
|
const tooltip = this.createApprovalMessage();
|
|
63
69
|
const progressPart = this._register(
|
|
64
70
|
instantiationService.createInstance(ChatProgressSubPart, result.element, codicon, tooltip)
|
|
65
71
|
);
|
|
66
72
|
this.domNode = progressPart.domNode;
|
|
73
|
+
if (useShimmer) {
|
|
74
|
+
this.domNode.classList.add("shimmer-progress");
|
|
75
|
+
}
|
|
67
76
|
this.renderedMessage.value = result;
|
|
68
77
|
}
|
|
69
78
|
updateMessage(content) {
|
|
@@ -72,11 +81,12 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
72
81
|
}
|
|
73
82
|
const result = this._register(this.chatContentMarkdownRenderer.render(content));
|
|
74
83
|
result.element.classList.add("progress-step");
|
|
84
|
+
this._fileWidgetStore.clear();
|
|
75
85
|
renderFileWidgets(
|
|
76
86
|
result.element,
|
|
77
87
|
this.instantiationService,
|
|
78
88
|
this.chatMarkdownAnchorService,
|
|
79
|
-
this.
|
|
89
|
+
this._fileWidgetStore
|
|
80
90
|
);
|
|
81
91
|
if (this.renderedMessage.value) {
|
|
82
92
|
this.renderedMessage.value.element.replaceWith(result.element);
|
|
@@ -99,7 +109,7 @@ let ChatProgressContentPart = class ChatProgressContentPart extends Disposable {
|
|
|
99
109
|
return this.toolInvocation && getToolApprovalMessage(this.toolInvocation);
|
|
100
110
|
}
|
|
101
111
|
};
|
|
102
|
-
ChatProgressContentPart = ( __decorate([( __param(
|
|
112
|
+
ChatProgressContentPart = ( __decorate([( __param(8, IInstantiationService)), ( __param(9, IChatMarkdownAnchorService)), ( __param(10, IConfigurationService))], ChatProgressContentPart));
|
|
103
113
|
function shouldShowSpinner(followingContent, element) {
|
|
104
114
|
return isResponseVM(element) && !element.isComplete && followingContent.length === 0;
|
|
105
115
|
}
|
|
@@ -114,6 +124,10 @@ let ChatProgressSubPart = class ChatProgressSubPart extends Disposable {
|
|
|
114
124
|
content: tooltip,
|
|
115
125
|
style: HoverStyle.Pointer
|
|
116
126
|
}));
|
|
127
|
+
this._register(hoverService.setupDelayedHover(messageElement, {
|
|
128
|
+
content: tooltip,
|
|
129
|
+
style: HoverStyle.Pointer
|
|
130
|
+
}));
|
|
117
131
|
}
|
|
118
132
|
append(this.domNode, iconElement);
|
|
119
133
|
messageElement.classList.add("progress-step");
|
|
@@ -133,7 +147,7 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
133
147
|
) {
|
|
134
148
|
const progressMessage = {
|
|
135
149
|
kind: "progressMessage",
|
|
136
|
-
content: ( new MarkdownString()).appendText(( localize(
|
|
150
|
+
content: ( new MarkdownString()).appendText(( localize(6540, "Working")))
|
|
137
151
|
};
|
|
138
152
|
super(
|
|
139
153
|
progressMessage,
|
|
@@ -143,14 +157,14 @@ let ChatWorkingProgressContentPart = class ChatWorkingProgressContentPart extend
|
|
|
143
157
|
undefined,
|
|
144
158
|
undefined,
|
|
145
159
|
undefined,
|
|
160
|
+
true,
|
|
146
161
|
instantiationService,
|
|
147
162
|
chatMarkdownAnchorService,
|
|
148
163
|
configurationService
|
|
149
164
|
);
|
|
150
|
-
this.domNode.classList.add("working-progress");
|
|
151
165
|
this._register(languageModelToolsService.onDidPrepareToolCallBecomeUnresponsive(e => {
|
|
152
166
|
if (isEqual(context.element.sessionResource, e.sessionResource)) {
|
|
153
|
-
this.updateMessage(( new MarkdownString(( localize(
|
|
167
|
+
this.updateMessage(( new MarkdownString(( localize(6541, "Waiting for tool '{0}' to respond...", e.toolData.displayName)))));
|
|
154
168
|
}
|
|
155
169
|
}));
|
|
156
170
|
}
|
|
@@ -2,13 +2,13 @@ import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/
|
|
|
2
2
|
import { IChatPullRequestContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
|
|
3
3
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
4
4
|
import { ChatTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
5
|
-
import { IChatContentPart } from "
|
|
6
|
-
import {
|
|
5
|
+
import { IChatContentPart } from "./chatContentParts.js";
|
|
6
|
+
import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
|
|
7
7
|
export declare class ChatPullRequestContentPart extends Disposable implements IChatContentPart {
|
|
8
8
|
private readonly pullRequestContent;
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly commandService;
|
|
10
10
|
readonly domNode: HTMLElement;
|
|
11
|
-
constructor(pullRequestContent: IChatPullRequestContent,
|
|
11
|
+
constructor(pullRequestContent: IChatPullRequestContent, commandService: ICommandService);
|
|
12
12
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|
|
13
13
|
addDisposable(disposable: IDisposable): void;
|
|
14
14
|
}
|
|
@@ -6,14 +6,14 @@ import { $, append, addDisposableListener } from '@codingame/monaco-vscode-api/v
|
|
|
6
6
|
import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
7
7
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
8
8
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
9
|
-
import {
|
|
9
|
+
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
10
10
|
|
|
11
11
|
registerCss(chatPullRequestContent);
|
|
12
12
|
let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Disposable {
|
|
13
|
-
constructor(pullRequestContent,
|
|
13
|
+
constructor(pullRequestContent, commandService) {
|
|
14
14
|
super();
|
|
15
15
|
this.pullRequestContent = pullRequestContent;
|
|
16
|
-
this.
|
|
16
|
+
this.commandService = commandService;
|
|
17
17
|
this.domNode = $(".chat-pull-request-content-part");
|
|
18
18
|
const container = append(this.domNode, $(".container"));
|
|
19
19
|
const contentContainer = append(container, $(".content-container"));
|
|
@@ -22,11 +22,16 @@ let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Dispos
|
|
|
22
22
|
icon.classList.add(...ThemeIcon.asClassNameArray(Codicon.gitPullRequest));
|
|
23
23
|
const titleLink = append(titleContainer, $("a.title"));
|
|
24
24
|
titleLink.textContent = `${this.pullRequestContent.title} - ${this.pullRequestContent.author}`;
|
|
25
|
-
|
|
25
|
+
if (this.pullRequestContent.uri) {
|
|
26
|
+
titleLink.href = this.pullRequestContent.uri?.toString();
|
|
27
|
+
}
|
|
26
28
|
this._register(addDisposableListener(titleLink, "click", e => {
|
|
27
29
|
e.preventDefault();
|
|
28
30
|
e.stopPropagation();
|
|
29
|
-
this.
|
|
31
|
+
this.commandService.executeCommand(
|
|
32
|
+
this.pullRequestContent.command.id,
|
|
33
|
+
...(this.pullRequestContent.command.arguments ?? [])
|
|
34
|
+
);
|
|
30
35
|
}));
|
|
31
36
|
}
|
|
32
37
|
hasSameContent(other, followingContent, element) {
|
|
@@ -36,6 +41,6 @@ let ChatPullRequestContentPart = class ChatPullRequestContentPart extends Dispos
|
|
|
36
41
|
this._register(disposable);
|
|
37
42
|
}
|
|
38
43
|
};
|
|
39
|
-
ChatPullRequestContentPart = ( __decorate([( __param(1,
|
|
44
|
+
ChatPullRequestContentPart = ( __decorate([( __param(1, ICommandService))], ChatPullRequestContentPart));
|
|
40
45
|
|
|
41
46
|
export { ChatPullRequestContentPart };
|