@@ -161,7 +161,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
161161 private _ctxMenuWidgetVisible : IContextKey < boolean > ;
162162 private viewItems : ICodeActionMenuItem [ ] = [ ] ;
163163 private focusedEnabledItem : number | undefined ;
164- private currSelectedItem : number = 0 ;
164+ private currSelectedItem : number | undefined ;
165165 private hasSeperator : boolean = false ;
166166 private block ?: HTMLElement ;
167167
@@ -213,21 +213,24 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
213213 e . elements . forEach ( element => {
214214 if ( element . isEnabled ) {
215215 element . action . run ( ) ;
216+ this . hideCodeActionWidget ( ) ;
216217 }
217218 } ) ;
218- this . hideCodeActionWidget ( ) ;
219219 }
220220 }
221221
222-
223222 private _onListHover ( e : IListMouseEvent < ICodeActionMenuItem > ) : void {
224223 if ( ! e . element ) {
224+ this . currSelectedItem = undefined ;
225225 this . codeActionList . value ?. setFocus ( [ ] ) ;
226226 } else {
227227 if ( e . element ?. isEnabled ) {
228228 this . codeActionList . value ?. setFocus ( [ e . element . index ] ) ;
229229 this . focusedEnabledItem = this . viewItems . indexOf ( e . element ) ;
230230 this . currSelectedItem = e . element . index ;
231+ } else {
232+ this . currSelectedItem = undefined ;
233+ this . codeActionList . value ?. setFocus ( [ e . element . index ] ) ;
231234 }
232235 }
233236 }
@@ -318,7 +321,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
318321
319322 // List selection
320323 if ( this . viewItems . length < 1 || this . viewItems . every ( item => item . isDocumentation ) ) {
321- this . currSelectedItem = 0 ;
324+ this . currSelectedItem = undefined ;
322325 } else {
323326 this . focusedEnabledItem = 0 ;
324327 this . currSelectedItem = this . viewItems [ 0 ] . index ;
@@ -391,7 +394,9 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
391394 }
392395
393396 public onEnterSet ( ) {
394- this . codeActionList . value ?. setSelection ( [ this . currSelectedItem ] ) ;
397+ if ( typeof this . currSelectedItem === 'number' ) {
398+ this . codeActionList . value ?. setSelection ( [ this . currSelectedItem ] ) ;
399+ }
395400 }
396401
397402 override dispose ( ) {
@@ -403,7 +408,7 @@ export class CodeActionMenu extends Disposable implements IEditorContribution {
403408 this . options = [ ] ;
404409 this . viewItems = [ ] ;
405410 this . focusedEnabledItem = 0 ;
406- this . currSelectedItem = 0 ;
411+ this . currSelectedItem = undefined ;
407412 this . hasSeperator = false ;
408413 this . _contextViewService . hideContextView ( { source : this } ) ;
409414 }
0 commit comments