src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.ts/MarkNavigationAddon/_registerTemporaryDecoration
class MarkNavigationAddon:	private _registerTemporaryDecoration(marker: IMarker, endMarker?: IMarker): void {
		if (!this._terminal) {
			return;
		}
		this._resetNavigationDecorations();
		const color = this._themeService.getColorTheme().getColor(TERMINAL_OVERVIEW_RULER_CURSOR_FOREGROUND_COLOR);
		const startLine = marker.line;
		const decorationCount = endMarker ? endMarker.line - startLine + 1 : 1;

		for (let i = 0; i < decorationCount; i++) {
			const decoration = this._terminal.registerDecoration({
				marker: this._createMarkerForOffset(marker, i),
				width: this._terminal.cols,
				overviewRulerOptions: {
					color: color?.toString() || '#a0a0a0cc'
				}
			});
			if (decoration) {
				this._navigationDecorations?.push(decoration);
				let renderedElement: HTMLElement | undefined;

				decoration.onRender(element => {
					if (!renderedElement) {
						renderedElement = element;
						if (decorationCount > 1) {
							element.classList.add('terminal-scroll-highlight');
						} else {
							element.classList.add('terminal-scroll-highlight', 'terminal-scroll-highlight-outline');
						}
						if (this._terminal?.element) {
							element.style.marginLeft = `-${getComputedStyle(this._terminal.element).paddingLeft}`;
						}
					}
				});
				decoration.onDispose(() => { this._navigationDecorations = this._navigationDecorations?.filter(d => d !== decoration); });
				// Number picked to align with symbol highlight in the editor
				timeout(350).then(() => {
					if (renderedElement) {
						renderedElement.classList.remove('terminal-scroll-highlight-outline');
					}
				});
			}
		}
	}