@@ -11,10 +11,16 @@ import { ExtensionStateContextType } from "@/context/ExtensionStateContext"
1111
1212interface UISettingsProps extends HTMLAttributes < HTMLDivElement > {
1313 reasoningBlockCollapsed : boolean
14+ requireCtrlEnterToSend ?: boolean
1415 setCachedStateField : SetCachedStateField < keyof ExtensionStateContextType >
1516}
1617
17- export const UISettings = ( { reasoningBlockCollapsed, setCachedStateField, ...props } : UISettingsProps ) => {
18+ export const UISettings = ( {
19+ reasoningBlockCollapsed,
20+ requireCtrlEnterToSend,
21+ setCachedStateField,
22+ ...props
23+ } : UISettingsProps ) => {
1824 const { t } = useAppTranslation ( )
1925
2026 const handleReasoningBlockCollapsedChange = ( value : boolean ) => {
@@ -26,6 +32,15 @@ export const UISettings = ({ reasoningBlockCollapsed, setCachedStateField, ...pr
2632 } )
2733 }
2834
35+ const handleRequireCtrlEnterToSendChange = ( value : boolean ) => {
36+ setCachedStateField ( "requireCtrlEnterToSend" , value )
37+
38+ // Track telemetry event
39+ telemetryClient . capture ( "ui_settings_ctrl_enter_changed" , {
40+ enabled : value ,
41+ } )
42+ }
43+
2944 return (
3045 < div { ...props } >
3146 < SectionHeader >
@@ -49,6 +64,19 @@ export const UISettings = ({ reasoningBlockCollapsed, setCachedStateField, ...pr
4964 { t ( "settings:ui.collapseThinking.description" ) }
5065 </ div >
5166 </ div >
67+
68+ { /* Require Ctrl+Enter to Send Setting */ }
69+ < div className = "flex flex-col gap-1" >
70+ < VSCodeCheckbox
71+ checked = { requireCtrlEnterToSend ?? false }
72+ onChange = { ( e : any ) => handleRequireCtrlEnterToSendChange ( e . target . checked ) }
73+ data-testid = "ctrl-enter-checkbox" >
74+ < span className = "font-medium" > { t ( "settings:ui.requireCtrlEnterToSend.label" ) } </ span >
75+ </ VSCodeCheckbox >
76+ < div className = "text-vscode-descriptionForeground text-sm ml-5 mt-1" >
77+ { t ( "settings:ui.requireCtrlEnterToSend.description" ) }
78+ </ div >
79+ </ div >
5280 </ div >
5381 </ Section >
5482 </ div >
0 commit comments