godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.07k stars 69 forks source link

While Debugging, show part of the the Output window in the Debugger Panel #9486

Open wyattbiker opened 2 months ago

wyattbiker commented 2 months ago

Describe the project you are working on

Many projects.

Describe the problem or limitation you are having in your project

Currently it takes extra steps to switch between Debugger and Output windows while single stepping or running through to the next breakpoint. print() and print_debug() output from scripts are normally part of debugging and should also be displayed as part of the debugger panels.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add an Output panel to the bottom of the Debugger's, Stack Trace tab to be visible (as an option). This way when you single step or run to next breakpoint you will be able to see print_debug()output and not have to keep switching to the Output tab and back to the Debugger tab.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Below is an example where the output window should be. It will be positioned at the bottom of the Stack Trace tab. Can be resized vertically and scroll-able. It can remain enabled/disabled as long as the project is open and can be saved to project settings. Would require a default option in Project Settings (debug/settings) called Show Output Panel in Stack Trace.

Proposed look in Debugger image

Example of viewing Output in current Editor. Notice I have to switch to Output/Debugger window back and forth while debugging to view output. image

If this enhancement will not be used often, can it be worked around with a few lines of script?

Will be used any time debugging.

Is there a reason why this should be core and not an add-on in the asset library?

It is part of the core debugger. Output is part of debugging.

Calinou commented 2 months ago

Unfortunately, I don't see a way to optionally display the Output panel in a second location without duplicating all of its data (with all the possible performance issues when you're printing lots of text at once).

KoBeWi commented 2 months ago

It's possible using ViewportTexture 🙃 But a better solution could be making the Output detachable.

wyattbiker commented 2 months ago

Unfortunately, I don't see a way to optionally display the Output panel in a second location without duplicating all of its data (with all the possible performance issues when you're printing lots of text at once).

Why does the data have to be duplicated? Can't the output window be reflected/referenced in a debugger panel? I don't know enough of the mechanics of Output though.

wyattbiker commented 2 months ago

It's possible using ViewportTexture 🙃 But a better solution could be making the Output detachable.

Or another option, allowing the debugging to continue, without switching to the debugger window. For example, I thought I could get away by pressing F10 while Output is open. Unfortunately it switches back to the debugger window.

Ideally the debugger buttons should always be present even when viewing other window panels such as Output.