apache / netbeans

Apache NetBeans
https://netbeans.apache.org/
Apache License 2.0
2.65k stars 850 forks source link

[#7228] - Add debugger default variable formatter for BigInteger and BigDecimal #7617

Closed ShadowOfLies closed 3 months ago

ShadowOfLies commented 3 months ago

Referencing #7228

Adds default formatters for BigDecimal and BigInteger displayed in the debugger variables window. These fomatters are useful, since these objects are not simple wrappers.

image

mbien commented 3 months ago

I have to wonder though how many don't realize that the debugger table has a toString() column?

The formatters are likely something which needs a good look. I am pretty sure that the original reason for providing default formatters was so that a toString() on collections wouldn't explode or cause concurrency issues and also to show that users could do the same if they encounter objects with similar problems.

The Map.Entry formatter is already problematic alone for the fact that it simply calls toString() on something which could be a collection too, without using the dedicated formatter for it.

We should probably consider to render the toString() column by default but delay items by using [show] and [show all] buttons or something similar. And then reconsider what needs to be a default formatter.

ShadowOfLies commented 3 months ago

I have to wonder though how many don't realize that the debugger table has a toString() column?

Honestly, in all my years of using NetBeans, I think I might have noticed it once, but I can't say that it is very noticeable.

We should probably consider to render the toString() column by default but delay items by using [show] and [show all] buttons or something similar. And then reconsider what needs to be a default formatter.

Luckily the list of default formatters is very small still, but I fully agree, it would be ideal to have the toString() column displayed by default without the rendering affecting the performance/memory. It could definitely be worth looking into as a separate task. :)