Change:
a project with some kind of debugging and make sure the Breakpoints view is near the bottom of the screen over the pencil icon on the second-to-bottom list item. It works over the bottom list icon. The tooltip seems to appear and disappear very quickly causing the mouse to flicker (the FPS on the gif doesn't capture it very well but you can see that it doesn't render correctly) !
cc , this might have always been a bug but is probably now more exposed given its a custom hover now.
I haven't made any changes to the computation of where the hover should be placed in relation to the target, so a bug that we have had for a while, but should definitely look into. After testing a bit it seems to me that this only happens for ().
This also definitely used to work on language features and recently regressed (works fine in 1.87 stable): ! Reported the styling problem in

Discussion:
return; } <ins> const hoverPointerOffset = (this._hoverPointer ? Constants.PointerSize : 0); </ins> // When force position is enabled, restrict max width if (this._forcePosition) { <del> const padding = (this._hoverPointer ? Constants.PointerSize : 0) + Constants.HoverBorderWidth; </del> <ins> const padding = hoverPointerOffset + Constants.HoverBorderWidth; </ins> if (this._hoverPosition === HoverPosition.RIGHT) { this._hover.containerDomNode.style.maxWidth = `${this._targetDocumentElement.clientWidth - target.right - padding}px`; } else if (this._hoverPosition === HoverPosition.LEFT) {

if (this._hoverPosition === HoverPosition.RIGHT) { const roomOnRight = this._targetDocumentElement.clientWidth - target.right; // Hover on the right is going beyond window. <del> if (roomOnRight < this._hover.containerDomNode.clientWidth) { </del> <ins> if (roomOnRight < this._hover.containerDomNode.clientWidth + hoverPointerOffset) { </ins> const roomOnLeft = target.left; // There's enough room on the left, flip the hover position <del> if (roomOnLeft >= this._hover.containerDomNode.clientWidth) { </del> <ins> if (roomOnLeft >= this._hover.containerDomNode.clientWidth + hoverPointerOffset) { </ins> this._hoverPosition = HoverPosition.LEFT; } // Hover on the left would go beyond window too

const roomOnLeft = target.left; // Hover on the left is going beyond window. <del> if (roomOnLeft < this._hover.containerDomNode.clientWidth) { </del> <ins> if (roomOnLeft < this._hover.containerDomNode.clientWidth + hoverPointerOffset) { </ins> const roomOnRight = this._targetDocumentElement.clientWidth - target.right; // There's enough room on the right, flip the hover position <del> if (roomOnRight >= this._hover.containerDomNode.clientWidth) { </del> <ins> if (roomOnRight >= this._hover.containerDomNode.clientWidth + hoverPointerOffset) { </ins> this._hoverPosition = HoverPosition.RIGHT; } // Hover on the right would go beyond window too

} } // Hover on the left is going beyond window. <del> if (target.left - this._hover.containerDomNode.clientWidth <= this._targetDocumentElement.clientLeft) { </del> <ins> if (target.left - this._hover.containerDomNode.clientWidth - hoverPointerOffset <= this._targetDocumentElement.clientLeft) { </ins> this._hoverPosition = HoverPosition.RIGHT; } }

return; } <ins> const hoverPointerOffset = (this._hoverPointer ? Constants.PointerSize : 0); </ins> // Position hover on top of the target if (this._hoverPosition === HoverPosition.ABOVE) { // Hover on top is going beyond window <del> if (target.top - this._hover.containerDomNode.clientHeight < 0) { </del> <ins> if (target.top - this._hover.containerDomNode.clientHeight - hoverPointerOffset < 0) { </ins> this._hoverPosition = HoverPosition.BELOW; } }

// Position hover below the target else if (this._hoverPosition === HoverPosition.BELOW) { // Hover on bottom is going beyond window <del> if (target.bottom + this._hover.containerDomNode.clientHeight > this._targetWindow.innerHeight) { </del> <ins> if (target.bottom + this._hover.containerDomNode.clientHeight + hoverPointerOffset > this._targetWindow.innerHeight) { </ins> this._hoverPosition = HoverPosition.ABOVE; } }