Skip to content

Conversation

@gjmooney
Copy link
Contributor

@gjmooney gjmooney commented Sep 15, 2025

This replaces the current debugger evaluate dialog with a console.

debugconsole.mp4

References

Closes #17849

Code changes

User-facing changes

Enables a console interface for interacting with the debugger.

Backwards-incompatible changes

@jupyterlab-probot
Copy link

Thanks for making a pull request to jupyterlab!
To try out this branch on binder, follow this link: Binder

@krassowski
Copy link
Member

^ picked merge conflicts from a new alpha release

Copy link
Member

@martinRenou martinRenou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That looks good to me! Thanks a lot for this :D

@krassowski
Copy link
Member

Long term this code would not live here, it would be the kernel responsibility to implement completion for the debugger. Another control channel message next to "evaluate"?

Can you open an issue/pre-JEP (whatever is needed) so that we do not lose track of this discussion?

@martinRenou
Copy link
Member

Will do!

@martinRenou
Copy link
Member

jupyter/enhancement-proposals#135

Copy link
Member

@krassowski krassowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is nearly there, some minor suggestions on command names and translation wrappers

Comment on lines 130 to 134
export const invokeConsole = 'debugger:invoke-console';

export const selectConsole = 'debugger:select-console';

export const executeConsole = 'debugger:execute-console';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest making the names of the commands easier to understand as this is user-facing:

Suggested change
export const invokeConsole = 'debugger:invoke-console';
export const selectConsole = 'debugger:select-console';
export const executeConsole = 'debugger:execute-console';
export const invokeConsole = 'debugger:invoke-console-completer';
export const selectConsole = 'debugger:select-console-completion';
export const executeConsole = 'debugger:run-in-console';

I see that normal console has console:run-forced and console:run-unforced do we need this distinction here too?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console won't execute unforced since that results in a kernel request.

Copy link
Member

@krassowski krassowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me - thank you @gjmooney!

Before we merge it, we should first merge #17928 to ensure tests pass (waiting on anyone to review).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Debugger: Replace the evaluate dialog with a real console

3 participants