Change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.70.2 OS Version: MacOS Monterey 12.5, chrome v 104.0.5112.101 Steps to Reproduce: language specific setting e.g. for a large number of languages Settings Editor, Check and hover on to show the hover view. Expected: All the overridden languages are visible and overflowing content can be scrolled to. Actual: The hover view is clipped at the screen height and not all languages are visible unless zooming out. !
this is working now, but there is some room for improvement as it does not use the maximum available space and sometimes has weird behavior with the beak. See below where the hovered text is just below the top of the widget which has a beak pointing down. <img width="272" alt="image" src="https://user-"

Discussion:
} }; <ins> // These calls adjust the position depending on spacing. </ins> this.adjustHorizontalHoverPosition(targetRect); this.adjustVerticalHoverPosition(targetRect); <ins> // This call limits the maximum height of the hover. this.adjustHoverMaxHeight(targetRect); </ins> // Offset the hover position if there is a pointer so it aligns with the target element this._hoverContainer.style.padding = '';

} private adjustVerticalHoverPosition(target: TargetRect): void { <del> // Do not adjust vertical hover position if y cordiante is provided if (this._target.y !== undefined) { return; } // When force position is enabled, restrict max height if (this._forcePosition) { const padding = (this._hoverPointer ? Constants.PointerSize : 0) + Constants.HoverBorderWidth; if (this._hoverPosition === HoverPosition.ABOVE) { this._hover.containerDomNode.style.maxHeight = `${target.top - padding}px`; } else if (this._hoverPosition === HoverPosition.BELOW) { this._hover.containerDomNode.style.maxHeight = `${window.innerHeight - target.bottom - padding}px`; } </del> <ins> // Do not adjust vertical hover position if the y coordinate is provided // or the position is forced if (this._target.y !== undefined || this._forcePosition) { </ins> return; }

} } <ins> private adjustHoverMaxHeight(target: TargetRect): void { let maxHeight = window.innerHeight / 2; // When force position is enabled, restrict max height if (this._forcePosition) { const padding = (this._hoverPointer ? Constants.PointerSize : 0) + Constants.HoverBorderWidth; if (this._hoverPosition === HoverPosition.ABOVE) { maxHeight = Math.min(maxHeight, target.top - padding); } else if (this._hoverPosition === HoverPosition.BELOW) { maxHeight = Math.min(maxHeight, window.innerHeight - target.bottom - padding); } } // Make sure not to accidentally enlarge the hover when setting a maxHeight for it maxHeight = Math.min(maxHeight, this._hover.containerDomNode.clientHeight); this._hover.containerDomNode.style.maxHeight = `${maxHeight}px`; } </ins> private setHoverPointerPosition(target: TargetRect): void { if (!this._hoverPointer) { return;

/* Must be higher than sash's z-index and terminal canvases */ z-index: 40; overflow: hidden; <ins> overflow-y: auto; </ins> max-width: 700px; }