UNPKG

monaco-editor-core

Version:

A browser based code editor

35 lines (34 loc) 1.34 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ export class LineSequence { constructor(trimmedHash, lines) { this.trimmedHash = trimmedHash; this.lines = lines; } getElement(offset) { return this.trimmedHash[offset]; } get length() { return this.trimmedHash.length; } getBoundaryScore(length) { const indentationBefore = length === 0 ? 0 : getIndentation(this.lines[length - 1]); const indentationAfter = length === this.lines.length ? 0 : getIndentation(this.lines[length]); return 1000 - (indentationBefore + indentationAfter); } getText(range) { return this.lines.slice(range.start, range.endExclusive).join('\n'); } isStronglyEqual(offset1, offset2) { return this.lines[offset1] === this.lines[offset2]; } } function getIndentation(str) { let i = 0; while (i < str.length && (str.charCodeAt(i) === 32 /* CharCode.Space */ || str.charCodeAt(i) === 9 /* CharCode.Tab */)) { i++; } return i; }