Path: blob/main/extensions/markdown-language-features/preview-src/activeLineMarker.ts
3292 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/4import { getElementsForSourceLine } from './scroll-sync';56export class ActiveLineMarker {7private _current: any;89onDidChangeTextEditorSelection(line: number, documentVersion: number) {10const { previous } = getElementsForSourceLine(line, documentVersion);11this._update(previous && (previous.codeElement || previous.element));12}1314private _update(before: HTMLElement | undefined) {15this._unmarkActiveElement(this._current);16this._markActiveElement(before);17this._current = before;18}1920private _unmarkActiveElement(element: HTMLElement | undefined) {21if (!element) {22return;23}24element.classList.toggle('code-active-line', false);25}2627private _markActiveElement(element: HTMLElement | undefined) {28if (!element) {29return;30}3132element.classList.toggle('code-active-line', true);33}34}353637