src/vs/workbench/contrib/terminal/browser/widgets/environmentVariableInfoWidget.ts/EnvironmentVariableInfoWidget/attach
class EnvironmentVariableInfoWidget:	attach(container: HTMLElement): void {
		this._container = container;
		this._domNode = document.createElement('div');
		this._domNode.classList.add('terminal-env-var-info', ...ThemeIcon.asClassNameArray(this._info.getIcon()));
		if (this.requiresAction) {
			this._domNode.classList.add('requires-action');
		}
		container.appendChild(this._domNode);

		const scheduler: RunOnceScheduler = new RunOnceScheduler(() => this._showHover(), this._configurationService.getValue<number>('workbench.hover.delay'));
		this._register(scheduler);
		const origin = { x: 0, y: 0 };

		this.onmouseover(this._domNode, e => {
			origin.x = e.browserEvent.pageX;
			origin.y = e.browserEvent.pageY;
			scheduler.schedule();

			this._mouseMoveListener = dom.addDisposableListener(this._domNode!, dom.EventType.MOUSE_MOVE, e => {
				// Reset the scheduler if the mouse moves too much
				if (Math.abs(e.pageX - origin.x) > window.devicePixelRatio * 2 || Math.abs(e.pageY - origin.y) > window.devicePixelRatio * 2) {
					origin.x = e.pageX;
					origin.y = e.pageY;
					scheduler.schedule();
				}
			});
		});
		this.onmouseleave(this._domNode, () => {
			scheduler.cancel();
			this._mouseMoveListener?.dispose();
		});
	}