@@ -161,7 +161,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
161
161
private _ctxMenuWidgetVisible : IContextKey < boolean > ;
162
162
private viewItems : ICodeActionMenuItem [ ] = [ ] ;
163
163
private focusedEnabledItem : number | undefined ;
164
- private currSelectedItem : number = 0 ;
164
+ private currSelectedItem : number | undefined ;
165
165
private hasSeperator : boolean = false ;
166
166
private block ?: HTMLElement ;
167
167
@@ -213,21 +213,24 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
213
213
e . elements . forEach ( element => {
214
214
if ( element . isEnabled ) {
215
215
element . action . run ( ) ;
216
+ this . hideCodeActionWidget ( ) ;
216
217
}
217
218
} ) ;
218
- this . hideCodeActionWidget ( ) ;
219
219
}
220
220
}
221
221
222
-
223
222
private _onListHover ( e : IListMouseEvent < ICodeActionMenuItem > ) : void {
224
223
if ( ! e . element ) {
224
+ this . currSelectedItem = undefined ;
225
225
this . codeActionList . value ?. setFocus ( [ ] ) ;
226
226
} else {
227
227
if ( e . element ?. isEnabled ) {
228
228
this . codeActionList . value ?. setFocus ( [ e . element . index ] ) ;
229
229
this . focusedEnabledItem = this . viewItems . indexOf ( e . element ) ;
230
230
this . currSelectedItem = e . element . index ;
231
+ } else {
232
+ this . currSelectedItem = undefined ;
233
+ this . codeActionList . value ?. setFocus ( [ e . element . index ] ) ;
231
234
}
232
235
}
233
236
}
@@ -318,7 +321,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
318
321
319
322
// List selection
320
323
if ( this . viewItems . length < 1 || this . viewItems . every ( item => item . isDocumentation ) ) {
321
- this . currSelectedItem = 0 ;
324
+ this . currSelectedItem = undefined ;
322
325
} else {
323
326
this . focusedEnabledItem = 0 ;
324
327
this . currSelectedItem = this . viewItems [ 0 ] . index ;
@@ -391,7 +394,9 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
391
394
}
392
395
393
396
public onEnterSet ( ) {
394
- this . codeActionList . value ?. setSelection ( [ this . currSelectedItem ] ) ;
397
+ if ( typeof this . currSelectedItem === 'number' ) {
398
+ this . codeActionList . value ?. setSelection ( [ this . currSelectedItem ] ) ;
399
+ }
395
400
}
396
401
397
402
override dispose ( ) {
@@ -403,7 +408,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
403
408
this . options = [ ] ;
404
409
this . viewItems = [ ] ;
405
410
this . focusedEnabledItem = 0 ;
406
- this . currSelectedItem = 0 ;
411
+ this . currSelectedItem = undefined ;
407
412
this . hasSeperator = false ;
408
413
this . _contextViewService . hideContextView ( { source : this } ) ;
409
414
}
0 commit comments