@@ -98,11 +98,107 @@ export const ContextManagementSettings = ({
9898 </ SectionHeader >
9999
100100 < Section >
101+ < div >
102+ < span className = "block font-medium mb-1" > { t ( "settings:contextManagement.openTabs.label" ) } </ span >
103+ < div className = "flex items-center gap-2" >
104+ < Slider
105+ min = { 0 }
106+ max = { 500 }
107+ step = { 1 }
108+ value = { [ maxOpenTabsContext ?? 20 ] }
109+ onValueChange = { ( [ value ] ) => setCachedStateField ( "maxOpenTabsContext" , value ) }
110+ data-testid = "open-tabs-limit-slider"
111+ />
112+ < span className = "w-10" > { maxOpenTabsContext ?? 20 } </ span >
113+ </ div >
114+ < div className = "text-vscode-descriptionForeground text-sm mt-1" >
115+ { t ( "settings:contextManagement.openTabs.description" ) }
116+ </ div >
117+ </ div >
118+
119+ < div >
120+ < span className = "block font-medium mb-1" >
121+ { t ( "settings:contextManagement.workspaceFiles.label" ) }
122+ </ span >
123+ < div className = "flex items-center gap-2" >
124+ < Slider
125+ min = { 0 }
126+ max = { 500 }
127+ step = { 1 }
128+ value = { [ maxWorkspaceFiles ?? 200 ] }
129+ onValueChange = { ( [ value ] ) => setCachedStateField ( "maxWorkspaceFiles" , value ) }
130+ data-testid = "workspace-files-limit-slider"
131+ />
132+ < span className = "w-10" > { maxWorkspaceFiles ?? 200 } </ span >
133+ </ div >
134+ < div className = "text-vscode-descriptionForeground text-sm mt-1" >
135+ { t ( "settings:contextManagement.workspaceFiles.description" ) }
136+ </ div >
137+ </ div >
138+
139+ < div >
140+ < VSCodeCheckbox
141+ checked = { showRooIgnoredFiles }
142+ onChange = { ( e : any ) => setCachedStateField ( "showRooIgnoredFiles" , e . target . checked ) }
143+ data-testid = "show-rooignored-files-checkbox" >
144+ < label className = "block font-medium mb-1" >
145+ { t ( "settings:contextManagement.rooignore.label" ) }
146+ </ label >
147+ </ VSCodeCheckbox >
148+ < div className = "text-vscode-descriptionForeground text-sm mt-1" >
149+ { t ( "settings:contextManagement.rooignore.description" ) }
150+ </ div >
151+ </ div >
152+
153+ < div >
154+ < div className = "flex flex-col gap-2" >
155+ < span className = "font-medium" > { t ( "settings:contextManagement.maxReadFile.label" ) } </ span >
156+ < div className = "flex items-center gap-4" >
157+ < Input
158+ type = "number"
159+ pattern = "-?[0-9]*"
160+ className = "w-24 bg-vscode-input-background text-vscode-input-foreground border border-vscode-input-border px-2 py-1 rounded text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none disabled:opacity-50"
161+ value = { maxReadFileLine ?? - 1 }
162+ min = { - 1 }
163+ onChange = { ( e ) => {
164+ const newValue = parseInt ( e . target . value , 10 )
165+ if ( ! isNaN ( newValue ) && newValue >= - 1 ) {
166+ setCachedStateField ( "maxReadFileLine" , newValue )
167+ }
168+ } }
169+ onClick = { ( e ) => e . currentTarget . select ( ) }
170+ data-testid = "max-read-file-line-input"
171+ disabled = { maxReadFileLine === - 1 }
172+ />
173+ < span > { t ( "settings:contextManagement.maxReadFile.lines" ) } </ span >
174+ < VSCodeCheckbox
175+ checked = { maxReadFileLine === - 1 }
176+ onChange = { ( e : any ) =>
177+ setCachedStateField ( "maxReadFileLine" , e . target . checked ? - 1 : 500 )
178+ }
179+ data-testid = "max-read-file-always-full-checkbox" >
180+ { t ( "settings:contextManagement.maxReadFile.always_full_read" ) }
181+ </ VSCodeCheckbox >
182+ </ div >
183+ </ div >
184+ < div className = "text-vscode-descriptionForeground text-sm mt-2" >
185+ { t ( "settings:contextManagement.maxReadFile.description" ) }
186+ </ div >
187+ </ div >
188+ </ Section >
189+
190+ < Section >
191+ < VSCodeCheckbox
192+ checked = { autoCondenseContext }
193+ onChange = { ( e : any ) => setCachedStateField ( "autoCondenseContext" , e . target . checked ) }
194+ data-testid = "auto-condense-context-checkbox" >
195+ < span className = "font-medium" > { t ( "settings:contextManagement.autoCondenseContext.name" ) } </ span >
196+ </ VSCodeCheckbox >
101197 { autoCondenseContext && (
102198 < div className = "flex flex-col gap-3 pl-3 border-l-2 border-vscode-button-background" >
103199 < div className = "flex items-center gap-4 font-bold" >
104200 < span className = "codicon codicon-fold" />
105- < div > { t ( "settings:experimental .autoCondenseContextPercent.label" ) } </ div >
201+ < div > { t ( "settings:contextManagement .autoCondenseContextPercent.label" ) } </ div >
106202 </ div >
107203 < div >
108204 < div className = "flex items-center gap-2" >
@@ -118,19 +214,19 @@ export const ContextManagementSettings = ({
118214 < span className = "w-20" > { autoCondenseContextPercent } %</ span >
119215 </ div >
120216 < div className = "text-vscode-descriptionForeground text-sm mt-1" >
121- { t ( "settings:experimental .autoCondenseContextPercent.description" ) }
217+ { t ( "settings:contextManagement .autoCondenseContextPercent.description" ) }
122218 </ div >
123219 </ div >
124220
125221 { /* API Configuration Selection */ }
126222 < div className = "flex flex-col gap-3" >
127223 < div className = "flex items-center gap-4 font-bold" >
128224 < span className = "codicon codicon-settings-gear" />
129- < div > { t ( "settings:experimental .condensingApiConfiguration.label" ) } </ div >
225+ < div > { t ( "settings:contextManagement .condensingApiConfiguration.label" ) } </ div >
130226 </ div >
131227 < div >
132228 < div className = "text-[13px] text-vscode-descriptionForeground mb-2" >
133- { t ( "settings:experimental .condensingApiConfiguration.description" ) }
229+ { t ( "settings:contextManagement .condensingApiConfiguration.description" ) }
134230 </ div >
135231 < Select
136232 value = { condensingApiConfigId || "-" }
@@ -145,13 +241,15 @@ export const ContextManagementSettings = ({
145241 < SelectTrigger className = "w-full" >
146242 < SelectValue
147243 placeholder = { t (
148- "settings:experimental .condensingApiConfiguration.useCurrentConfig" ,
244+ "settings:contextManagement .condensingApiConfiguration.useCurrentConfig" ,
149245 ) }
150246 />
151247 </ SelectTrigger >
152248 < SelectContent >
153249 < SelectItem value = "-" >
154- { t ( "settings:experimental.condensingApiConfiguration.useCurrentConfig" ) }
250+ { t (
251+ "settings:contextManagement.condensingApiConfiguration.useCurrentConfig" ,
252+ ) }
155253 </ SelectItem >
156254 { ( listApiConfigMeta || [ ] ) . map ( ( config ) => (
157255 < SelectItem key = { config . id } value = { config . id } >
@@ -167,11 +265,11 @@ export const ContextManagementSettings = ({
167265 < div className = "flex flex-col gap-3" >
168266 < div className = "flex items-center gap-4 font-bold" >
169267 < span className = "codicon codicon-edit" />
170- < div > { t ( "settings:experimental .customCondensingPrompt.label" ) } </ div >
268+ < div > { t ( "settings:contextManagement .customCondensingPrompt.label" ) } </ div >
171269 </ div >
172270 < div >
173271 < div className = "text-[13px] text-vscode-descriptionForeground mb-2" >
174- { t ( "settings:experimental .customCondensingPrompt.description" ) }
272+ { t ( "settings:contextManagement .customCondensingPrompt.description" ) }
175273 </ div >
176274 < VSCodeTextArea
177275 resize = "vertical"
@@ -198,100 +296,13 @@ export const ContextManagementSettings = ({
198296 text : SUMMARY_PROMPT ,
199297 } )
200298 } } >
201- { t ( "settings:experimental .customCondensingPrompt.reset" ) }
299+ { t ( "settings:contextManagement .customCondensingPrompt.reset" ) }
202300 </ Button >
203301 </ div >
204302 </ div >
205303 </ div >
206304 </ div >
207305 ) }
208- < div >
209- < span className = "block font-medium mb-1" > { t ( "settings:contextManagement.openTabs.label" ) } </ span >
210- < div className = "flex items-center gap-2" >
211- < Slider
212- min = { 0 }
213- max = { 500 }
214- step = { 1 }
215- value = { [ maxOpenTabsContext ?? 20 ] }
216- onValueChange = { ( [ value ] ) => setCachedStateField ( "maxOpenTabsContext" , value ) }
217- data-testid = "open-tabs-limit-slider"
218- />
219- < span className = "w-10" > { maxOpenTabsContext ?? 20 } </ span >
220- </ div >
221- < div className = "text-vscode-descriptionForeground text-sm mt-1" >
222- { t ( "settings:contextManagement.openTabs.description" ) }
223- </ div >
224- </ div >
225-
226- < div >
227- < span className = "block font-medium mb-1" >
228- { t ( "settings:contextManagement.workspaceFiles.label" ) }
229- </ span >
230- < div className = "flex items-center gap-2" >
231- < Slider
232- min = { 0 }
233- max = { 500 }
234- step = { 1 }
235- value = { [ maxWorkspaceFiles ?? 200 ] }
236- onValueChange = { ( [ value ] ) => setCachedStateField ( "maxWorkspaceFiles" , value ) }
237- data-testid = "workspace-files-limit-slider"
238- />
239- < span className = "w-10" > { maxWorkspaceFiles ?? 200 } </ span >
240- </ div >
241- < div className = "text-vscode-descriptionForeground text-sm mt-1" >
242- { t ( "settings:contextManagement.workspaceFiles.description" ) }
243- </ div >
244- </ div >
245-
246- < div >
247- < VSCodeCheckbox
248- checked = { showRooIgnoredFiles }
249- onChange = { ( e : any ) => setCachedStateField ( "showRooIgnoredFiles" , e . target . checked ) }
250- data-testid = "show-rooignored-files-checkbox" >
251- < label className = "block font-medium mb-1" >
252- { t ( "settings:contextManagement.rooignore.label" ) }
253- </ label >
254- </ VSCodeCheckbox >
255- < div className = "text-vscode-descriptionForeground text-sm mt-1" >
256- { t ( "settings:contextManagement.rooignore.description" ) }
257- </ div >
258- </ div >
259-
260- < div >
261- < div className = "flex flex-col gap-2" >
262- < span className = "font-medium" > { t ( "settings:contextManagement.maxReadFile.label" ) } </ span >
263- < div className = "flex items-center gap-4" >
264- < Input
265- type = "number"
266- pattern = "-?[0-9]*"
267- className = "w-24 bg-vscode-input-background text-vscode-input-foreground border border-vscode-input-border px-2 py-1 rounded text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none disabled:opacity-50"
268- value = { maxReadFileLine ?? - 1 }
269- min = { - 1 }
270- onChange = { ( e ) => {
271- const newValue = parseInt ( e . target . value , 10 )
272- if ( ! isNaN ( newValue ) && newValue >= - 1 ) {
273- setCachedStateField ( "maxReadFileLine" , newValue )
274- }
275- } }
276- onClick = { ( e ) => e . currentTarget . select ( ) }
277- data-testid = "max-read-file-line-input"
278- disabled = { maxReadFileLine === - 1 }
279- />
280- < span > { t ( "settings:contextManagement.maxReadFile.lines" ) } </ span >
281- < VSCodeCheckbox
282- checked = { maxReadFileLine === - 1 }
283- onChange = { ( e : any ) =>
284- setCachedStateField ( "maxReadFileLine" , e . target . checked ? - 1 : 500 )
285- }
286- data-testid = "max-read-file-always-full-checkbox" >
287- { t ( "settings:contextManagement.maxReadFile.always_full_read" ) }
288- </ VSCodeCheckbox >
289- </ div >
290- </ div >
291- < div className = "text-vscode-descriptionForeground text-sm mt-2" >
292- { t ( "settings:contextManagement.maxReadFile.description" ) }
293- </ div >
294- </ div >
295306 </ Section >
296307 </ div >
297308 )
0 commit comments