* testing: finish up coverage decorations
- Adds an inline decorator for empty-range branches
- Adds hover information for inline coverage hovers
- Fixes the editor not handling decorations that get after/before
content in `updateDecorationOptions`
- Adds an option `label` for branches
- A bunch of other misc tweaks to get coverage looking nice
- Keep decorations in sync if a user makes changes in editor
* update tests
This is the first pass at decorations in-editor. This PR doesn't
actually register the contribution, as it's not ready for selfhosting
yet. This PR creates decorations that look like this. The idea is that
coverage decorations in the glyph margin will always be visibile when
there's coverage, and users can get coverage in their code via hover or
shortcut, with the intention of making coverage unobtrusive and easy to
run all the time.

The notable thing is that there is now a third glyph margin row. I
reworked some of the editor code to handle this.

Some open questions:
- The glyph margin coverage wants doesn't need to be full-width, should
we add a new 'leftmost' glyph lane instead that's thinner?
- Adding breakpoints in files with coverage is a little annoying since
the breakpoint hint widget can expand the glyph margin on lines with
coverage, and jump back over otherwise. Probably we should never
decrease the number of lanes shown whenever the cursor is over the
glyph margin.

This continues on the coverage API I started a few years ago. It adds
initial integration where a "Show Test Coverage" tree item is shown in
the Test Results view, which then opens a dedicated Test Coverage view.
The Test Coverage view is a fairly basic tree view following the draft
design, with further improvements to come.
The 'bars' widget is also built in a reusable way such that it can be
integrated into the explorer, as this was a popular ask both inside and
outside the team.
For #123713.
* chore: rename color var for comment input box
also change the default color to inherit from input.background
* Keep using peekview title background and update editor too
---------
Co-authored-by: Alex Ross <alros@microsoft.com>
* work in progress make it scrollabel
* adding changes
* adding changes
* cleaning the code
* cleaning the code
* not usnig a vertical scrollbar
* scanning the dom node only on mouse over
* requires tweaking
* now the scrollbar can be used alongside the hovering on the sticky scroll
* setting handle mouse wheel to false in order not to scroll vertically inside of the scrollable element with wheel
* separated the line numbers and the actual line in order to be able to just move one of the scrollbars, the editor one and the line numbers remain the same
* cleanin the code
* we are able to make the full line appear
* the width is correctly updated on the width layout change of the editor
* only rendering when top scroll changed, not when horizontal scroll changed
* using the correct editor layout info, not the one saved in the constructor
* setting the linehtml node style width to 100% so that the whole line is covered, but still not covered after the end of the viewport
* changing the total width after rendering
* placing the color into sticky line number
* removing the direct setting of the colors
* adding the background color inside of sticky line number
* using the view zone in order to increase the scroll width of the editor
* placing the view zone at the very bottom of the file
* limiting the scrollable dom height to the height of the sticky widget lines node inside, so now the sticky widget works as before
* cleaning the code
* cleaning the code
* removing useless variable
* adding 100 pixels in order to see the end of the line
* removing the console logs
* putting back the check to what it was
* using the same string convention
* adding inheritance properties in order for the background color to be propagated
* cleaning the code
* cleaning the code
* using or instead of and in the zone accessos
* cleaning the code
* cleaning the code
* cleaning the CSS
* chaning the order of the CSS properties
* cleaning the code
* Improve rendering
* No need to resize the widget from the outside, the widget resizes itself
* placing the focus method inside of the sticky widget
* céeanig the code
* Minor tweaks
* Also update widget width when the scroll width changes
* Allow overlay widgets to pass in a minimum content width
* Also update the min content width if the position doesn't change
* defining method for mi content width in px
* updating the minimum content width
* adding setting in order to be able to control whether sticky scroll scrolling should be influenced by editor horizontal scrolling
* removing redundant new line
* Fix typo
* Extract code in a function
---------
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>