@codingame/monaco-vscode-katex-common 26.2.2 → 27.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 +35 -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 +548 -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 +168 -15
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatElicitationActions.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +67 -51
- 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/agentSessionHoverWidget.js +9 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.js +42 -19
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.d.ts +12 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsFilter.js +63 -40
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsOpener.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.d.ts +7 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.js +77 -73
- package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/media/agentsessionsviewer.css +69 -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 +381 -83
- 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 +109 -113
- 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/chatSessions/chatSessionPickerActionItem.js +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.d.ts +28 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/chatSessions.contribution.js +226 -123
- package/vscode/src/vs/workbench/contrib/chat/browser/chatSessions/searchableOptionPickerActionItem.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewWelcomeController.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatAgentHover.js +2 -2
- 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.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 +1 -3
- 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.js +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatCollapsibleContentPart.d.ts +3 -1
- 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 +2 -1
- 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.js +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.js +1 -1
- 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.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.d.ts +3 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatErrorConfirmationPart.js +6 -3
- 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 +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatHookContentPart.js +5 -4
- 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 +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownContentPart.js +51 -20
- 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.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.d.ts +2 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatProgressContentPart.js +20 -8
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatPullRequestContentPart.d.ts +3 -3
- 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 +36 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatQuestionCarouselPart.js +166 -45
- 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 +3 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatReferencesContentPart.js +16 -11
- 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.js +1 -0
- 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 +10 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatThinkingContentPart.js +241 -78
- 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 +252 -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 +5 -3
- 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.js +5 -5
- 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.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 +48 -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 +351 -422
- 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 +69 -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 +4 -1
- 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.js +4 -4
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatInputOutputMarkdownProgressPart.d.ts +0 -1
- 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.js +2 -2
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatMcpAppSubPart.js +7 -7
- 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.js +15 -18
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.d.ts +1 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatTerminalToolProgressPart.js +61 -66
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolConfirmationSubPart.js +7 -9
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/toolInvocationParts/chatToolInvocationPart.d.ts +3 -1
- 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.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 +1 -1
- 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.js +13 -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 +17 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.js +310 -79
- 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 +441 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidget.js +392 -86
- 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 +52 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatInputPart.js +271 -187
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.d.ts +68 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.js +668 -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 +2 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/modePickerActionItem.js +78 -45
- 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 +86 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/sessionTargetPickerActionItem.js +9 -5
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/workspacePickerActionItem.js +4 -3
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chat.css +393 -134
- package/vscode/src/vs/workbench/contrib/chat/browser/widget/media/chatViewWelcome.css +36 -17
- 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 +20 -13
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.d.ts +25 -6
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatContextUsageWidget.js +141 -79
- package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatContextUsageWidget.css +18 -13
- 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 +108 -27
- 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 +4 -6
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatAffordance.js +74 -32
- 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 +0 -42
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatEditorAffordance.css +27 -3
- package/vscode/src/vs/workbench/contrib/inlineChat/browser/media/inlineChatOverlayWidget.css +83 -2
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.d.ts +8 -1
- package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +58 -33
- 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/chat/browser/widget/input/modelPickerActionItem.js +0 -187
- /package/vscode/src/vs/{workbench/contrib → platform}/mcp/common/modelContextProtocolApps.js +0 -0
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.d.ts
CHANGED
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
|
|
3
|
+
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
4
|
+
import { IContextMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service";
|
|
5
|
+
import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service";
|
|
6
|
+
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
2
7
|
import { IMarkdownRenderer } from "@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer";
|
|
8
|
+
import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
|
|
3
9
|
import { IChatTip } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/workbench/contrib/chat/browser/chatTipService";
|
|
10
|
+
import { IChatTipService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatTipService.service";
|
|
11
|
+
import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service";
|
|
4
12
|
export declare class ChatTipContentPart extends Disposable {
|
|
13
|
+
private readonly _renderer;
|
|
14
|
+
private readonly _chatTipService;
|
|
15
|
+
private readonly _contextMenuService;
|
|
16
|
+
private readonly _menuService;
|
|
17
|
+
private readonly _contextKeyService;
|
|
18
|
+
private readonly _instantiationService;
|
|
19
|
+
private readonly _openerService;
|
|
20
|
+
private readonly _commandService;
|
|
21
|
+
private readonly _chatEntitlementService;
|
|
5
22
|
readonly domNode: HTMLElement;
|
|
6
|
-
|
|
23
|
+
private readonly _onDidHide;
|
|
24
|
+
readonly onDidHide: import("@codingame/monaco-vscode-api/vscode/vs/base/common/event").Event<void>;
|
|
25
|
+
private readonly _renderedContent;
|
|
26
|
+
private readonly _toolbar;
|
|
27
|
+
private readonly _inChatTipContextKey;
|
|
28
|
+
private readonly _multipleChatTipsContextKey;
|
|
29
|
+
constructor(tip: IChatTip, _renderer: IMarkdownRenderer, _chatTipService: IChatTipService, _contextMenuService: IContextMenuService, _menuService: IMenuService, _contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _openerService: IOpenerService, _commandService: ICommandService, _chatEntitlementService: IChatEntitlementService);
|
|
30
|
+
hasFocus(): boolean;
|
|
31
|
+
focus(): void;
|
|
32
|
+
private _renderTip;
|
|
33
|
+
private _handleTipAction;
|
|
34
|
+
private _shouldTriggerSetup;
|
|
7
35
|
}
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTipContentPart.js
CHANGED
|
@@ -1,21 +1,265 @@
|
|
|
1
1
|
|
|
2
2
|
import { registerCss } from '@codingame/monaco-vscode-api/css';
|
|
3
|
+
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
4
|
import * as chatTipContent from './media/chatTipContent.css';
|
|
4
|
-
import { $ as $$1 } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
5
|
-
import {
|
|
5
|
+
import { $ as $$1, trackFocus, runAtThisOrScheduleAtNextAnimationFrame, getWindow, addDisposableListener, EventType, EventHelper, isAncestorOfActiveElement, clearNode } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
6
|
+
import { StandardMouseEvent } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/mouseEvent';
|
|
6
7
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
7
|
-
import {
|
|
8
|
+
import { Emitter } from '@codingame/monaco-vscode-api/vscode/vs/base/common/event';
|
|
9
|
+
import { onUnexpectedError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
|
10
|
+
import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
|
|
11
|
+
import { localize, localize2 } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
|
12
|
+
import { getFlatContextMenuActions } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
|
|
13
|
+
import { MenuWorkbenchToolBar } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/browser/toolbar';
|
|
14
|
+
import { MenuId, registerAction2, Action2 } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions';
|
|
15
|
+
import { IMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service';
|
|
16
|
+
import { IContextKeyService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
17
|
+
import { IContextMenuService } from '@codingame/monaco-vscode-api/vscode/vs/platform/contextview/browser/contextView.service';
|
|
18
|
+
import { ICommandService } from '@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service';
|
|
19
|
+
import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
|
|
20
|
+
import { openLinkFromMarkdown } from '@codingame/monaco-vscode-api/vscode/vs/platform/markdown/browser/markdownRenderer';
|
|
21
|
+
import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
|
|
22
|
+
import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
|
|
23
|
+
import { CHAT_SETUP_ACTION_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
|
|
24
|
+
import { IChatTipService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatTipService.service';
|
|
25
|
+
import { ChatEntitlement } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService';
|
|
26
|
+
import { IChatEntitlementService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service';
|
|
8
27
|
|
|
9
28
|
registerCss(chatTipContent);
|
|
10
29
|
const $ = $$1;
|
|
11
|
-
class ChatTipContentPart extends Disposable {
|
|
12
|
-
constructor(
|
|
30
|
+
let ChatTipContentPart = class ChatTipContentPart extends Disposable {
|
|
31
|
+
constructor(
|
|
32
|
+
tip,
|
|
33
|
+
_renderer,
|
|
34
|
+
_chatTipService,
|
|
35
|
+
_contextMenuService,
|
|
36
|
+
_menuService,
|
|
37
|
+
_contextKeyService,
|
|
38
|
+
_instantiationService,
|
|
39
|
+
_openerService,
|
|
40
|
+
_commandService,
|
|
41
|
+
_chatEntitlementService
|
|
42
|
+
) {
|
|
13
43
|
super();
|
|
44
|
+
this._renderer = _renderer;
|
|
45
|
+
this._chatTipService = _chatTipService;
|
|
46
|
+
this._contextMenuService = _contextMenuService;
|
|
47
|
+
this._menuService = _menuService;
|
|
48
|
+
this._contextKeyService = _contextKeyService;
|
|
49
|
+
this._instantiationService = _instantiationService;
|
|
50
|
+
this._openerService = _openerService;
|
|
51
|
+
this._commandService = _commandService;
|
|
52
|
+
this._chatEntitlementService = _chatEntitlementService;
|
|
53
|
+
this._onDidHide = this._register(( new Emitter()));
|
|
54
|
+
this.onDidHide = this._onDidHide.event;
|
|
55
|
+
this._renderedContent = this._register(( new MutableDisposable()));
|
|
56
|
+
this._toolbar = this._register(( new MutableDisposable()));
|
|
14
57
|
this.domNode = $(".chat-tip-widget");
|
|
15
|
-
this.domNode.
|
|
16
|
-
|
|
58
|
+
this.domNode.tabIndex = 0;
|
|
59
|
+
this.domNode.setAttribute("role", "region");
|
|
60
|
+
this.domNode.setAttribute("aria-roledescription", ( localize(6513, "tip")));
|
|
61
|
+
this._inChatTipContextKey = ChatContextKeys.inChatTip.bindTo(this._contextKeyService);
|
|
62
|
+
this._multipleChatTipsContextKey = ChatContextKeys.multipleChatTips.bindTo(this._contextKeyService);
|
|
63
|
+
const focusTracker = this._register(trackFocus(this.domNode));
|
|
64
|
+
this._register(focusTracker.onDidFocus(() => this._inChatTipContextKey.set(true)));
|
|
65
|
+
this._register(focusTracker.onDidBlur(() => this._inChatTipContextKey.set(false)));
|
|
66
|
+
this._register({
|
|
67
|
+
dispose: () => {
|
|
68
|
+
this._inChatTipContextKey.reset();
|
|
69
|
+
this._multipleChatTipsContextKey.reset();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
this._renderTip(tip);
|
|
73
|
+
this._register(this._chatTipService.onDidDismissTip(() => {
|
|
74
|
+
const nextTip = this._chatTipService.navigateToNextTip();
|
|
75
|
+
if (nextTip) {
|
|
76
|
+
this._renderTip(nextTip);
|
|
77
|
+
runAtThisOrScheduleAtNextAnimationFrame(getWindow(this.domNode), () => this.focus());
|
|
78
|
+
} else {
|
|
79
|
+
this._onDidHide.fire();
|
|
80
|
+
}
|
|
81
|
+
}));
|
|
82
|
+
this._register(this._chatTipService.onDidNavigateTip(tip => {
|
|
83
|
+
this._renderTip(tip);
|
|
84
|
+
runAtThisOrScheduleAtNextAnimationFrame(getWindow(this.domNode), () => this.focus());
|
|
85
|
+
}));
|
|
86
|
+
this._register(this._chatTipService.onDidHideTip(() => {
|
|
87
|
+
this._onDidHide.fire();
|
|
88
|
+
}));
|
|
89
|
+
this._register(this._chatTipService.onDidDisableTips(() => {
|
|
90
|
+
this._onDidHide.fire();
|
|
91
|
+
}));
|
|
92
|
+
this._register(addDisposableListener(this.domNode, EventType.CONTEXT_MENU, e => {
|
|
93
|
+
EventHelper.stop(e, true);
|
|
94
|
+
const event = ( new StandardMouseEvent(getWindow(this.domNode), e));
|
|
95
|
+
this._contextMenuService.showContextMenu({
|
|
96
|
+
getAnchor: () => event,
|
|
97
|
+
getActions: () => {
|
|
98
|
+
const menu = this._menuService.getMenuActions(MenuId.ChatTipContext, this._contextKeyService);
|
|
99
|
+
return getFlatContextMenuActions(menu);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
hasFocus() {
|
|
105
|
+
return isAncestorOfActiveElement(this.domNode);
|
|
106
|
+
}
|
|
107
|
+
focus() {
|
|
108
|
+
this.domNode.focus();
|
|
109
|
+
}
|
|
110
|
+
_renderTip(tip) {
|
|
111
|
+
clearNode(this.domNode);
|
|
112
|
+
this._toolbar.clear();
|
|
113
|
+
this._multipleChatTipsContextKey.set(this._chatTipService.hasMultipleTips());
|
|
114
|
+
const markdownContent = this._renderer.render(tip.content, {
|
|
115
|
+
actionHandler: (link, md) => {
|
|
116
|
+
this._handleTipAction(link, md).catch(onUnexpectedError);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
this._renderedContent.value = markdownContent;
|
|
17
120
|
this.domNode.appendChild(markdownContent.element);
|
|
121
|
+
const toolbarContainer = $(".chat-tip-toolbar");
|
|
122
|
+
this._toolbar.value = this._instantiationService.createInstance(MenuWorkbenchToolBar, toolbarContainer, MenuId.ChatTipToolbar, {
|
|
123
|
+
menuOptions: {
|
|
124
|
+
shouldForwardArgs: true
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
this.domNode.appendChild(toolbarContainer);
|
|
128
|
+
const textContent = markdownContent.element.textContent ?? ( localize(6514, "Chat tip"));
|
|
129
|
+
const hasLink = /\[.*?\]\(.*?\)/.test(tip.content.value);
|
|
130
|
+
const ariaLabel = hasLink ? ( localize(6515, "{0} Tab to reach the action.", textContent)) : textContent;
|
|
131
|
+
this.domNode.setAttribute("aria-label", ariaLabel);
|
|
132
|
+
}
|
|
133
|
+
async _handleTipAction(link, mdStr) {
|
|
134
|
+
if (link.startsWith("command:") && this._shouldTriggerSetup()) {
|
|
135
|
+
const setupSucceeded = await this._commandService.executeCommand(CHAT_SETUP_ACTION_ID);
|
|
136
|
+
if (!setupSucceeded) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
await openLinkFromMarkdown(this._openerService, link, mdStr.isTrusted);
|
|
141
|
+
}
|
|
142
|
+
_shouldTriggerSetup() {
|
|
143
|
+
const sentiment = this._chatEntitlementService.sentiment;
|
|
144
|
+
if (!sentiment?.installed) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return this._chatEntitlementService.entitlement === ChatEntitlement.Unknown;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
ChatTipContentPart = ( __decorate([( __param(2, IChatTipService)), ( __param(3, IContextMenuService)), ( __param(4, IMenuService)), ( __param(5, IContextKeyService)), ( __param(6, IInstantiationService)), ( __param(7, IOpenerService)), ( __param(8, ICommandService)), ( __param(9, IChatEntitlementService))], ChatTipContentPart));
|
|
151
|
+
registerAction2(class PreviousTipAction extends Action2 {
|
|
152
|
+
constructor() {
|
|
153
|
+
super({
|
|
154
|
+
id: "workbench.action.chat.previousTip",
|
|
155
|
+
title: ( localize2(6516, "Previous tip")),
|
|
156
|
+
icon: Codicon.chevronLeft,
|
|
157
|
+
precondition: ChatContextKeys.multipleChatTips,
|
|
158
|
+
f1: false,
|
|
159
|
+
menu: [{
|
|
160
|
+
id: MenuId.ChatTipToolbar,
|
|
161
|
+
group: "navigation",
|
|
162
|
+
order: 1
|
|
163
|
+
}]
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
async run(accessor) {
|
|
167
|
+
const chatTipService = accessor.get(IChatTipService);
|
|
168
|
+
chatTipService.navigateToPreviousTip();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
registerAction2(class NextTipAction extends Action2 {
|
|
172
|
+
constructor() {
|
|
173
|
+
super({
|
|
174
|
+
id: "workbench.action.chat.nextTip",
|
|
175
|
+
title: ( localize2(6517, "Next tip")),
|
|
176
|
+
icon: Codicon.chevronRight,
|
|
177
|
+
precondition: ChatContextKeys.multipleChatTips,
|
|
178
|
+
f1: false,
|
|
179
|
+
menu: [{
|
|
180
|
+
id: MenuId.ChatTipToolbar,
|
|
181
|
+
group: "navigation",
|
|
182
|
+
order: 2
|
|
183
|
+
}]
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
async run(accessor) {
|
|
187
|
+
const chatTipService = accessor.get(IChatTipService);
|
|
188
|
+
chatTipService.navigateToNextTip();
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
registerAction2(class DismissTipToolbarAction extends Action2 {
|
|
192
|
+
constructor() {
|
|
193
|
+
super({
|
|
194
|
+
id: "workbench.action.chat.dismissTipToolbar",
|
|
195
|
+
title: ( localize2(6518, "Dismiss tip")),
|
|
196
|
+
icon: Codicon.check,
|
|
197
|
+
f1: false,
|
|
198
|
+
menu: [{
|
|
199
|
+
id: MenuId.ChatTipToolbar,
|
|
200
|
+
group: "navigation",
|
|
201
|
+
order: 3
|
|
202
|
+
}]
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
async run(accessor) {
|
|
206
|
+
accessor.get(IChatTipService).dismissTip();
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
registerAction2(class DismissTipAction extends Action2 {
|
|
210
|
+
constructor() {
|
|
211
|
+
super({
|
|
212
|
+
id: "workbench.action.chat.dismissTip",
|
|
213
|
+
title: ( localize2(6519, "Dismiss this tip")),
|
|
214
|
+
f1: false,
|
|
215
|
+
menu: [{
|
|
216
|
+
id: MenuId.ChatTipContext,
|
|
217
|
+
group: "chatTip",
|
|
218
|
+
order: 1
|
|
219
|
+
}]
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
async run(accessor) {
|
|
223
|
+
accessor.get(IChatTipService).dismissTip();
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
registerAction2(class DisableTipsAction extends Action2 {
|
|
227
|
+
constructor() {
|
|
228
|
+
super({
|
|
229
|
+
id: "workbench.action.chat.disableTips",
|
|
230
|
+
title: ( localize2(6520, "Disable tips")),
|
|
231
|
+
icon: Codicon.bellSlash,
|
|
232
|
+
f1: false,
|
|
233
|
+
menu: [{
|
|
234
|
+
id: MenuId.ChatTipContext,
|
|
235
|
+
group: "chatTip",
|
|
236
|
+
order: 2
|
|
237
|
+
}, {
|
|
238
|
+
id: MenuId.ChatTipToolbar,
|
|
239
|
+
group: "navigation",
|
|
240
|
+
order: 5
|
|
241
|
+
}]
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
async run(accessor) {
|
|
245
|
+
const chatTipService = accessor.get(IChatTipService);
|
|
246
|
+
const commandService = accessor.get(ICommandService);
|
|
247
|
+
await chatTipService.disableTips();
|
|
248
|
+
await commandService.executeCommand("workbench.action.openSettings", "chat.tips.enabled");
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
registerAction2(class ResetDismissedTipsAction extends Action2 {
|
|
252
|
+
constructor() {
|
|
253
|
+
super({
|
|
254
|
+
id: "workbench.action.chat.resetDismissedTips",
|
|
255
|
+
title: ( localize2(6521, "Reset Dismissed Tips")),
|
|
256
|
+
f1: true,
|
|
257
|
+
precondition: ChatContextKeys.enabled
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
async run(accessor) {
|
|
261
|
+
accessor.get(IChatTipService).clearDismissedTips();
|
|
18
262
|
}
|
|
19
|
-
}
|
|
263
|
+
});
|
|
20
264
|
|
|
21
265
|
export { ChatTipContentPart };
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class ChatTodoListWidget extends Disposable {
|
|
|
18
18
|
private clearButton;
|
|
19
19
|
private _currentSessionResource;
|
|
20
20
|
private _todoList;
|
|
21
|
+
private readonly _inChatTodoListContextKey;
|
|
21
22
|
constructor(chatTodoListService: IChatTodoListService, instantiationService: IInstantiationService, contextKeyService: IContextKeyService);
|
|
22
23
|
get height(): number;
|
|
23
24
|
private hideWidget;
|
|
@@ -25,6 +26,9 @@ export declare class ChatTodoListWidget extends Disposable {
|
|
|
25
26
|
private createClearButton;
|
|
26
27
|
render(sessionResource: URI | undefined): void;
|
|
27
28
|
clear(sessionResource: URI | undefined, force?: boolean): void;
|
|
29
|
+
hasTodos(): boolean;
|
|
30
|
+
hasFocus(): boolean;
|
|
31
|
+
focus(): boolean;
|
|
28
32
|
private updateTodoDisplay;
|
|
29
33
|
private renderTodoList;
|
|
30
34
|
private toggleExpanded;
|
package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatTodoListWidget.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { __decorate, __param } from '@codingame/monaco-vscode-api/external/tslib/tslib.es6';
|
|
3
|
-
import { append,
|
|
3
|
+
import { append, $, trackFocus, isAncestorOfActiveElement } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/dom';
|
|
4
4
|
import { Button } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/button/button';
|
|
5
5
|
import { IconLabel } from '@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/iconLabel/iconLabel';
|
|
6
6
|
import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
|
|
@@ -55,7 +55,7 @@ class TodoListRenderer {
|
|
|
55
55
|
statusIcon.style.color = this.getStatusIconColor(todo.status);
|
|
56
56
|
iconLabel.setLabel(todo.title);
|
|
57
57
|
const statusText = this.getStatusText(todo.status);
|
|
58
|
-
const ariaLabel = ( localize(
|
|
58
|
+
const ariaLabel = ( localize(6522, "{0}, {1}", todo.title, statusText));
|
|
59
59
|
todoElement.setAttribute("aria-label", ariaLabel);
|
|
60
60
|
}
|
|
61
61
|
disposeTemplate(templateData) {
|
|
@@ -64,12 +64,12 @@ class TodoListRenderer {
|
|
|
64
64
|
getStatusText(status) {
|
|
65
65
|
switch (status) {
|
|
66
66
|
case "completed":
|
|
67
|
-
return localize(
|
|
67
|
+
return localize(6523, "completed");
|
|
68
68
|
case "in-progress":
|
|
69
|
-
return localize(
|
|
69
|
+
return localize(6524, "in progress");
|
|
70
70
|
case "not-started":
|
|
71
71
|
default:
|
|
72
|
-
return localize(
|
|
72
|
+
return localize(6525, "not started");
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
getStatusIconClass(status) {
|
|
@@ -103,7 +103,11 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
103
103
|
this.contextKeyService = contextKeyService;
|
|
104
104
|
this._isExpanded = false;
|
|
105
105
|
this._userManuallyExpanded = false;
|
|
106
|
+
this._inChatTodoListContextKey = ChatContextKeys.inChatTodoList.bindTo(contextKeyService);
|
|
106
107
|
this.domNode = this.createChatTodoWidget();
|
|
108
|
+
const focusTracker = this._register(trackFocus(this.domNode));
|
|
109
|
+
this._register(focusTracker.onDidFocus(() => this._inChatTodoListContextKey.set(true)));
|
|
110
|
+
this._register(focusTracker.onDidBlur(() => this._inChatTodoListContextKey.set(false)));
|
|
107
111
|
this._register(this.contextKeyService.onDidChangeContext(e => {
|
|
108
112
|
if (e.affectsSome(( new Set([ChatContextKeys.requestInProgress.key])))) {
|
|
109
113
|
this.updateClearButtonState();
|
|
@@ -131,7 +135,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
131
135
|
this.expandIcon.setAttribute("aria-hidden", "true");
|
|
132
136
|
this.titleElement = $(".todo-list-title");
|
|
133
137
|
this.titleElement.id = "todo-list-title";
|
|
134
|
-
this.titleElement.textContent = ( localize(
|
|
138
|
+
this.titleElement.textContent = ( localize(6526, "Todos"));
|
|
135
139
|
this.clearButtonContainer = $(".todo-clear-button-container");
|
|
136
140
|
this.createClearButton();
|
|
137
141
|
titleSection.appendChild(this.expandIcon);
|
|
@@ -152,7 +156,8 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
152
156
|
}
|
|
153
157
|
createClearButton() {
|
|
154
158
|
this.clearButton = ( new Button(this.clearButtonContainer, {
|
|
155
|
-
supportIcons: true
|
|
159
|
+
supportIcons: true,
|
|
160
|
+
ariaLabel: ( localize(6527, "Clear all todos"))
|
|
156
161
|
}));
|
|
157
162
|
this.clearButton.element.tabIndex = 0;
|
|
158
163
|
this.clearButton.icon = Codicon.clearAll;
|
|
@@ -183,6 +188,22 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
183
188
|
this.clearAllTodos();
|
|
184
189
|
}
|
|
185
190
|
}
|
|
191
|
+
hasTodos() {
|
|
192
|
+
return this.domNode.classList.contains("has-todos") && !!this._todoList && this._todoList.length > 0;
|
|
193
|
+
}
|
|
194
|
+
hasFocus() {
|
|
195
|
+
return isAncestorOfActiveElement(this.todoListContainer);
|
|
196
|
+
}
|
|
197
|
+
focus() {
|
|
198
|
+
if (!this.hasTodos()) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
if (!this._isExpanded) {
|
|
202
|
+
this.toggleExpanded();
|
|
203
|
+
}
|
|
204
|
+
this._todoList?.domFocus();
|
|
205
|
+
return this.hasFocus();
|
|
206
|
+
}
|
|
186
207
|
updateTodoDisplay() {
|
|
187
208
|
if (!this._currentSessionResource) {
|
|
188
209
|
return;
|
|
@@ -215,9 +236,9 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
215
236
|
accessibilityProvider: {
|
|
216
237
|
getAriaLabel: todo => {
|
|
217
238
|
const statusText = this.getStatusText(todo.status);
|
|
218
|
-
return localize(
|
|
239
|
+
return localize(6522, "{0}, {1}", todo.title, statusText);
|
|
219
240
|
},
|
|
220
|
-
getWidgetAriaLabel: () => ( localize(
|
|
241
|
+
getWidgetAriaLabel: () => ( localize(6528, "Chat Todo List"))
|
|
221
242
|
}
|
|
222
243
|
}
|
|
223
244
|
));
|
|
@@ -268,9 +289,9 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
268
289
|
const shouldDisable = isRequestInProgress && hasInProgressTask;
|
|
269
290
|
this.clearButton.enabled = !shouldDisable;
|
|
270
291
|
if (shouldDisable) {
|
|
271
|
-
this.clearButton.setTitle(( localize(
|
|
292
|
+
this.clearButton.setTitle(( localize(6529, "Cannot clear todos while a task is in progress")));
|
|
272
293
|
} else {
|
|
273
|
-
this.clearButton.setTitle(( localize(
|
|
294
|
+
this.clearButton.setTitle(( localize(6527, "Clear all todos")));
|
|
274
295
|
}
|
|
275
296
|
}
|
|
276
297
|
updateTitleElement(titleElement, todoList) {
|
|
@@ -282,12 +303,12 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
282
303
|
const notStartedTodos = todoList.filter(todo => todo.status === "not-started");
|
|
283
304
|
const firstNotStartedTodo = notStartedTodos.length > 0 ? notStartedTodos[0] : undefined;
|
|
284
305
|
const currentTaskNumber = inProgressTodos.length > 0 ? completedCount + 1 : Math.max(1, completedCount);
|
|
285
|
-
const expandButtonLabel = this._isExpanded ? ( localize(
|
|
306
|
+
const expandButtonLabel = this._isExpanded ? ( localize(6530, "Collapse Todos")) : ( localize(6531, "Expand Todos"));
|
|
286
307
|
this.expandoButton.element.setAttribute("aria-label", expandButtonLabel);
|
|
287
308
|
this.expandoButton.element.setAttribute("aria-expanded", this._isExpanded ? "true" : "false");
|
|
288
309
|
if (this._isExpanded) {
|
|
289
310
|
const titleText = $("span");
|
|
290
|
-
titleText.textContent = totalCount > 0 ? ( localize(
|
|
311
|
+
titleText.textContent = totalCount > 0 ? ( localize(6532, "Todos ({0}/{1})", currentTaskNumber, totalCount)) : ( localize(6526, "Todos"));
|
|
291
312
|
titleElement.appendChild(titleText);
|
|
292
313
|
} else {
|
|
293
314
|
const todoToShow = firstInProgressTodo || firstNotStartedTodo;
|
|
@@ -304,7 +325,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
304
325
|
icon.style.verticalAlign = "middle";
|
|
305
326
|
titleElement.appendChild(icon);
|
|
306
327
|
const todoText = $("span");
|
|
307
|
-
todoText.textContent = ( localize(
|
|
328
|
+
todoText.textContent = ( localize(6533, "{0} ({1}/{2})", todoToShow.title, currentTaskNumber, totalCount));
|
|
308
329
|
todoText.style.verticalAlign = "middle";
|
|
309
330
|
todoText.style.overflow = "hidden";
|
|
310
331
|
todoText.style.textOverflow = "ellipsis";
|
|
@@ -314,7 +335,7 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
314
335
|
}
|
|
315
336
|
else if (completedCount > 0 && completedCount === totalCount) {
|
|
316
337
|
const doneText = $("span");
|
|
317
|
-
doneText.textContent = ( localize(
|
|
338
|
+
doneText.textContent = ( localize(6532, "Todos ({0}/{1})", totalCount, totalCount));
|
|
318
339
|
doneText.style.verticalAlign = "middle";
|
|
319
340
|
titleElement.appendChild(doneText);
|
|
320
341
|
}
|
|
@@ -323,12 +344,12 @@ let ChatTodoListWidget = class ChatTodoListWidget extends Disposable {
|
|
|
323
344
|
getStatusText(status) {
|
|
324
345
|
switch (status) {
|
|
325
346
|
case "completed":
|
|
326
|
-
return localize(
|
|
347
|
+
return localize(6523, "completed");
|
|
327
348
|
case "in-progress":
|
|
328
|
-
return localize(
|
|
349
|
+
return localize(6524, "in progress");
|
|
329
350
|
case "not-started":
|
|
330
351
|
default:
|
|
331
|
-
return localize(
|
|
352
|
+
return localize(6525, "not started");
|
|
332
353
|
}
|
|
333
354
|
}
|
|
334
355
|
};
|
|
@@ -4,6 +4,7 @@ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
|
|
|
4
4
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
5
5
|
import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
|
|
6
6
|
import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
|
|
7
|
+
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
7
8
|
import { IHoverService } from "@codingame/monaco-vscode-api/vscode/vs/platform/hover/browser/hover.service";
|
|
8
9
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
9
10
|
import { IChatRendererContent } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/model/chatViewModel";
|
|
@@ -11,6 +12,7 @@ import { LanguageModelPartAudience } from "@codingame/monaco-vscode-api/vscode/v
|
|
|
11
12
|
import { ChatTreeItem, IChatCodeBlockInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat";
|
|
12
13
|
import { ICodeBlockRenderOptions } from "./codeBlockPart.js";
|
|
13
14
|
import { IChatContentPartRenderContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatContentParts";
|
|
15
|
+
import { IChatMarkdownAnchorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/widget/chatContentParts/chatMarkdownAnchorService.service";
|
|
14
16
|
export interface IChatCollapsibleIOCodePart {
|
|
15
17
|
kind: "code";
|
|
16
18
|
data: string;
|
|
@@ -46,8 +48,8 @@ export declare class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
|
46
48
|
private readonly _instantiationService;
|
|
47
49
|
private readonly modelService;
|
|
48
50
|
private readonly languageService;
|
|
49
|
-
private readonly
|
|
50
|
-
readonly
|
|
51
|
+
private readonly chatMarkdownAnchorService;
|
|
52
|
+
private readonly configurationService;
|
|
51
53
|
private readonly _editorReferences;
|
|
52
54
|
private readonly _titlePart;
|
|
53
55
|
private _outputSubPart;
|
|
@@ -58,7 +60,7 @@ export declare class ChatCollapsibleInputOutputContentPart extends Disposable {
|
|
|
58
60
|
get title(): string | IMarkdownString;
|
|
59
61
|
private readonly _expanded;
|
|
60
62
|
get expanded(): boolean;
|
|
61
|
-
constructor(title: IMarkdownString | string, subtitle: string | IMarkdownString | undefined, progressTooltip: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, input: IChatCollapsibleInputData, output: IChatCollapsibleOutputData | undefined, isError: boolean, initiallyExpanded: boolean, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, hoverService: IHoverService, modelService: IModelService, languageService: ILanguageService);
|
|
63
|
+
constructor(title: IMarkdownString | string, subtitle: string | IMarkdownString | undefined, progressTooltip: IMarkdownString | string | undefined, context: IChatContentPartRenderContext, input: IChatCollapsibleInputData, output: IChatCollapsibleOutputData | undefined, isError: boolean, initiallyExpanded: boolean, contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, hoverService: IHoverService, modelService: IModelService, languageService: ILanguageService, chatMarkdownAnchorService: IChatMarkdownAnchorService, configurationService: IConfigurationService);
|
|
62
64
|
private createMessageContents;
|
|
63
65
|
private addCodeBlock;
|
|
64
66
|
hasSameContent(other: IChatRendererContent, followingContent: IChatRendererContent[], element: ChatTreeItem): boolean;
|