UNPKG

monaco-editor

Version:
99 lines (96 loc) 3.65 kB
import { equals } from '../../base/common/arrays.js'; import { isBasicASCII, containsRTL } from '../../base/common/strings.js'; /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ class Viewport { constructor(top, left, width, height) { this._viewportBrand = undefined; this.top = top | 0; this.left = left | 0; this.width = width | 0; this.height = height | 0; } } class MinimapLinesRenderingData { constructor(tabSize, data) { this.tabSize = tabSize; this.data = data; } } class ViewLineData { constructor(content, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations) { this._viewLineDataBrand = undefined; this.content = content; this.continuesWithWrappedLine = continuesWithWrappedLine; this.minColumn = minColumn; this.maxColumn = maxColumn; this.startVisibleColumn = startVisibleColumn; this.tokens = tokens; this.inlineDecorations = inlineDecorations; } } class ViewLineRenderingData { constructor(minColumn, maxColumn, content, continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, tokens, inlineDecorations, tabSize, startVisibleColumn, textDirection, hasVariableFonts) { this.minColumn = minColumn; this.maxColumn = maxColumn; this.content = content; this.continuesWithWrappedLine = continuesWithWrappedLine; this.isBasicASCII = ViewLineRenderingData.isBasicASCII(content, mightContainNonBasicASCII); this.containsRTL = ViewLineRenderingData.containsRTL(content, this.isBasicASCII, mightContainRTL); this.tokens = tokens; this.inlineDecorations = inlineDecorations; this.tabSize = tabSize; this.startVisibleColumn = startVisibleColumn; this.textDirection = textDirection; this.hasVariableFonts = hasVariableFonts; } static isBasicASCII(lineContent, mightContainNonBasicASCII) { if (mightContainNonBasicASCII) { return isBasicASCII(lineContent); } return true; } static containsRTL(lineContent, isBasicASCII, mightContainRTL) { if (!isBasicASCII && mightContainRTL) { return containsRTL(lineContent); } return false; } } class OverviewRulerDecorationsGroup { constructor(color, zIndex, /** * Decorations are encoded in a number array using the following scheme: * - 3*i = lane * - 3*i+1 = startLineNumber * - 3*i+2 = endLineNumber */ data) { this.color = color; this.zIndex = zIndex; this.data = data; } static compareByRenderingProps(a, b) { if (a.zIndex === b.zIndex) { if (a.color < b.color) { return -1; } if (a.color > b.color) { return 1; } return 0; } return a.zIndex - b.zIndex; } static equals(a, b) { return (a.color === b.color && a.zIndex === b.zIndex && equals(a.data, b.data)); } static equalsArr(a, b) { return equals(a, b, OverviewRulerDecorationsGroup.equals); } } export { MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, Viewport };