Skip to content

Debug console architecture #11462

Open
Open
@isidorn

Description

@isidorn

This item is intended as a discussion for the future of the debug console. Currently we use the tree to represent all elements in the debug console. This has worked well thus far but has certain limitations. The benefit of using the tree is that we can easily render complex elements - the ones that have children. The tree also allows us to lazily fetch the children of each element and is virtualised.

Motivation for the change

#1957
#4338
#4326
#2163
#6845
#228
#10680
#26641

Option 1: use the editor and simulate the tree using editor decorations

pro: find, selection, word wrap, performance
con: have to simulate the tree by using editor decorations / indentation, not enough flexibility (for possibly future requests of rendering custom things in the debug console).

Note: editor could be enhanced to render custom images, but customly rendered output which the user can interact with is tricky.

Option 2: use the editor but render a tree per complex object in a custom editor widget

pro: most similar to what we currently have with some benefits on top (able to find/copy outside of complex objects)
con: find and selection will not work inside the tree, thus making it hard to copy / find contents inside complex objects

Option 3: render the debug console not using existing widgets

pro: gives most flexibility
con: no virtualisation, slow for a large number of elements, have to rewrite find widget, word wraping

Chrome debug console is a good example of this. They can render multiple complex elements side by side and expand / collapse them.

@weinand @alexandrudima please edit / modify as you see fit. I might have missed some of the pro/cons that we discussed, I just simply wrote what we have talked about this afternoon.

Metadata

Metadata

Assignees

Labels

debugDebug viewlet, configurations, breakpoints, adapter issuesfeature-requestRequest for new features or functionality

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions