diff --git a/src/vs/editor/browser/standalone/colorizer.ts b/src/vs/editor/browser/standalone/colorizer.ts
index a185df8f08445d0f5dc37c17fea9769638d81bf7..c69481a6d41d7dc85ceed09d05c4ab847a958b1e 100644
--- a/src/vs/editor/browser/standalone/colorizer.ts
+++ b/src/vs/editor/browser/standalone/colorizer.ts
@@ -9,9 +9,8 @@ import { TPromise } from 'vs/base/common/winjs.base';
import { IModel } from 'vs/editor/common/editorCommon';
import { TokenizationRegistry, ITokenizationSupport } from 'vs/editor/common/modes';
import { IModeService } from 'vs/editor/common/services/modeService';
-import { renderLine, RenderLineInput } from 'vs/editor/common/viewLayout/viewLineRenderer';
-import { ViewLineToken } from 'vs/editor/common/core/viewLineToken';
-import { LineParts } from 'vs/editor/common/core/lineParts';
+import { render2, RenderLineInput2 } from 'vs/editor/common/viewLayout/viewLineRenderer';
+import { ViewLineToken, ViewLineTokens } from 'vs/editor/common/core/viewLineToken';
import { LineTokens } from 'vs/editor/common/core/lineTokens';
import * as strings from 'vs/base/common/strings';
import { IStandaloneColorService } from 'vs/editor/common/services/standaloneColorService';
@@ -96,14 +95,15 @@ export class Colorizer {
}
public static colorizeLine(line: string, tokens: ViewLineToken[], tabSize: number = 4): string {
- let renderResult = renderLine(new RenderLineInput(
+ let renderResult = render2(new RenderLineInput2(
line,
+ new ViewLineTokens(tokens, 0, line.length),
+ [],
tabSize,
0,
-1,
'none',
- false,
- new LineParts(tokens, line.length + 1)
+ false
));
return renderResult.output;
}
@@ -126,14 +126,15 @@ function _fakeColorize(lines: string[], tabSize: number): string {
for (let i = 0, length = lines.length; i < length; i++) {
let line = lines[i];
- let renderResult = renderLine(new RenderLineInput(
+ let renderResult = render2(new RenderLineInput2(
line,
+ new ViewLineTokens([], 0, line.length),
+ [],
tabSize,
0,
-1,
'none',
- false,
- new LineParts([], line.length + 1)
+ false
));
html = html.concat(renderResult.output);
@@ -152,14 +153,15 @@ function _actualColorize(lines: string[], tabSize: number, tokenizationSupport:
let line = lines[i];
let tokenizeResult = tokenizationSupport.tokenize2(line, state, 0);
let lineTokens = new LineTokens(colorMap, tokenizeResult.tokens, line);
- let renderResult = renderLine(new RenderLineInput(
+ let renderResult = render2(new RenderLineInput2(
line,
+ new ViewLineTokens(lineTokens.inflate(), 0, line.length),
+ [],
tabSize,
0,
-1,
'none',
- false,
- new LineParts(lineTokens.inflate(), line.length + 1)
+ false
));
html = html.concat(renderResult.output);
diff --git a/src/vs/editor/browser/viewParts/lines/viewLine.ts b/src/vs/editor/browser/viewParts/lines/viewLine.ts
index 4412db89dd799c3fb08ed4d3498166ed9081301d..01542a06aa029dd63dd319db7f2698d8189a3c00 100644
--- a/src/vs/editor/browser/viewParts/lines/viewLine.ts
+++ b/src/vs/editor/browser/viewParts/lines/viewLine.ts
@@ -7,8 +7,8 @@
import * as browser from 'vs/base/browser/browser';
import { FastDomNode, createFastDomNode } from 'vs/base/browser/styleMutator';
import { IConfigurationChangedEvent } from 'vs/editor/common/editorCommon';
-import { createLineParts, Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
-import { renderLine, RenderLineInput, RenderLineOutput, CharacterMapping } from 'vs/editor/common/viewLayout/viewLineRenderer';
+import { Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
+import { render2, RenderLineInput2, RenderLineOutput, CharacterMapping } from 'vs/editor/common/viewLayout/viewLineRenderer';
import { ClassNames } from 'vs/editor/browser/editorBrowser';
import { IVisibleLineData } from 'vs/editor/browser/view/viewLayer';
import { RangeUtil } from 'vs/editor/browser/viewParts/lines/rangeUtil';
@@ -97,24 +97,18 @@ export class ViewLine implements IVisibleLineData {
}
this._isMaybeInvalid = false;
- let actualInlineDecorations = Decoration.filter(inlineDecorations, lineNumber, this._context.model.getLineMinColumn(lineNumber), this._context.model.getLineMaxColumn(lineNumber));
+ const model = this._context.model;
+ const actualInlineDecorations = Decoration.filter(inlineDecorations, lineNumber, model.getLineMinColumn(lineNumber), model.getLineMaxColumn(lineNumber));
- let newLineParts = createLineParts(
- this._context.model.getLineContent(lineNumber),
- this._context.model.getTabSize(),
- this._context.model.getLineTokens(lineNumber),
+ let renderLineInput = new RenderLineInput2(
+ model.getLineContent(lineNumber),
+ model.getLineTokens(lineNumber),
actualInlineDecorations,
- this._renderWhitespace
- );
-
- let renderLineInput = new RenderLineInput(
- this._context.model.getLineContent(lineNumber),
- this._context.model.getTabSize(),
+ model.getTabSize(),
this._spaceWidth,
this._stopRenderingLineAfter,
this._renderWhitespace,
- this._renderControlCharacters,
- newLineParts
+ this._renderControlCharacters
);
if (this._renderedViewLine && this._renderedViewLine.input.equals(renderLineInput)) {
@@ -129,7 +123,7 @@ export class ViewLine implements IVisibleLineData {
renderLineInput,
this._context.model.mightContainRTL(),
isWhitespaceOnly,
- renderLine(renderLineInput)
+ render2(renderLineInput)
);
return true;
}
@@ -174,7 +168,7 @@ export class ViewLine implements IVisibleLineData {
class RenderedViewLine {
public domNode: FastDomNode;
- public readonly input: RenderLineInput;
+ public readonly input: RenderLineInput2;
public readonly html: string;
protected readonly _characterMapping: CharacterMapping;
@@ -186,7 +180,7 @@ class RenderedViewLine {
*/
private _pixelOffsetCache: number[];
- constructor(domNode: FastDomNode, renderLineInput: RenderLineInput, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput) {
+ constructor(domNode: FastDomNode, renderLineInput: RenderLineInput2, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput) {
this.domNode = domNode;
this.input = renderLineInput;
this.html = renderLineOutput.output;
@@ -197,7 +191,7 @@ class RenderedViewLine {
this._pixelOffsetCache = null;
if (!modelContainsRTL) {
this._pixelOffsetCache = [];
- for (let column = 0, maxLineColumn = this.input.lineParts.maxLineColumn; column <= maxLineColumn; column++) {
+ for (let column = 0, len = this._characterMapping.length; column <= len; column++) {
this._pixelOffsetCache[column] = -1;
}
}
@@ -379,17 +373,17 @@ class WebKitRenderedViewLine extends RenderedViewLine {
}
}
-const createRenderedLine: (domNode: FastDomNode, renderLineInput: RenderLineInput, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput) => RenderedViewLine = (function () {
+const createRenderedLine: (domNode: FastDomNode, renderLineInput: RenderLineInput2, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput) => RenderedViewLine = (function () {
if (browser.isWebKit) {
return createWebKitRenderedLine;
}
return createNormalRenderedLine;
})();
-function createWebKitRenderedLine(domNode: FastDomNode, renderLineInput: RenderLineInput, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput): RenderedViewLine {
+function createWebKitRenderedLine(domNode: FastDomNode, renderLineInput: RenderLineInput2, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput): RenderedViewLine {
return new WebKitRenderedViewLine(domNode, renderLineInput, modelContainsRTL, isWhitespaceOnly, renderLineOutput);
}
-function createNormalRenderedLine(domNode: FastDomNode, renderLineInput: RenderLineInput, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput): RenderedViewLine {
+function createNormalRenderedLine(domNode: FastDomNode, renderLineInput: RenderLineInput2, modelContainsRTL: boolean, isWhitespaceOnly: boolean, renderLineOutput: RenderLineOutput): RenderedViewLine {
return new RenderedViewLine(domNode, renderLineInput, modelContainsRTL, isWhitespaceOnly, renderLineOutput);
}
diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts
index 1c3b3414db07305280ecc5d78ef8f603cd43ef3d..bf821fe263aac38e13f50a5bc8df7b31a3931ab0 100644
--- a/src/vs/editor/browser/widget/diffEditorWidget.ts
+++ b/src/vs/editor/browser/widget/diffEditorWidget.ts
@@ -19,8 +19,8 @@ import { DefaultConfig } from 'vs/editor/common/config/defaultConfig';
import { Range } from 'vs/editor/common/core/range';
import * as editorCommon from 'vs/editor/common/editorCommon';
import { IEditorWorkerService } from 'vs/editor/common/services/editorWorkerService';
-import { createLineParts, Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
-import { renderLine, RenderLineInput } from 'vs/editor/common/viewLayout/viewLineRenderer';
+import { Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
+import { render2, RenderLineInput2 } from 'vs/editor/common/viewLayout/viewLineRenderer';
import * as editorBrowser from 'vs/editor/browser/editorBrowser';
import { CodeEditor } from 'vs/editor/browser/codeEditor';
import { ViewLineToken, ViewLineTokens } from 'vs/editor/common/core/viewLineToken';
@@ -1887,16 +1887,16 @@ class InlineViewZonesComputer extends ViewZonesComputer {
let lineTokens = new ViewLineTokens([new ViewLineToken(0, '')], 0, lineContent.length);
let actualDecorations = Decoration.filter(decorations, lineNumber, 1, lineContent.length + 1);
- let parts = createLineParts(lineContent, tabSize, lineTokens, actualDecorations, config.viewInfo.renderWhitespace);
- let r = renderLine(new RenderLineInput(
+ let r = render2(new RenderLineInput2(
lineContent,
+ lineTokens,
+ actualDecorations,
tabSize,
config.fontInfo.spaceWidth,
config.viewInfo.stopRenderingLineAfter,
config.viewInfo.renderWhitespace,
- config.viewInfo.renderControlCharacters,
- parts
+ config.viewInfo.renderControlCharacters
));
let myResult: string[] = [];
diff --git a/src/vs/editor/common/viewLayout/viewLineParts.ts b/src/vs/editor/common/viewLayout/viewLineParts.ts
index ca2a75e382d36f96659b46ab4d63d100abb65ce7..d3c052a5ee7b4f63aa7dd90d31edba3d0bc6e7b5 100644
--- a/src/vs/editor/common/viewLayout/viewLineParts.ts
+++ b/src/vs/editor/common/viewLayout/viewLineParts.ts
@@ -24,6 +24,28 @@ export class Decoration {
this.className = className;
}
+ private static _equals(a: Decoration, b: Decoration): boolean {
+ return (
+ a.startColumn === b.startColumn
+ && a.endColumn === b.endColumn
+ && a.className === b.className
+ );
+ }
+
+ public static equalsArr(a: Decoration[], b: Decoration[]): boolean {
+ let aLen = a.length;
+ let bLen = b.length;
+ if (aLen !== bLen) {
+ return false;
+ }
+ for (let i = 0; i < aLen; i++) {
+ if (!Decoration._equals(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
public static filter(lineDecorations: InlineDecoration[], lineNumber: number, minLineColumn: number, maxLineColumn: number): Decoration[] {
if (lineDecorations.length === 0) {
return [];
diff --git a/src/vs/editor/common/viewLayout/viewLineRenderer.ts b/src/vs/editor/common/viewLayout/viewLineRenderer.ts
index 1bc4ee9443e754456e2ccdbf299b8c9158a6fe6e..c2810333af61d44ea610e731ba467f6319435126 100644
--- a/src/vs/editor/common/viewLayout/viewLineRenderer.ts
+++ b/src/vs/editor/common/viewLayout/viewLineRenderer.ts
@@ -4,40 +4,43 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
-import { ViewLineToken } from 'vs/editor/common/core/viewLineToken';
+import { ViewLineToken, ViewLineTokens } from 'vs/editor/common/core/viewLineToken';
import { CharCode } from 'vs/base/common/charCode';
import { LineParts } from 'vs/editor/common/core/lineParts';
+import { createLineParts, Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
-export class RenderLineInput {
- _renderLineInputBrand: void;
+export class RenderLineInput2 {
- lineContent: string;
- tabSize: number;
- spaceWidth: number;
- stopRenderingLineAfter: number;
- renderWhitespace: 'none' | 'boundary' | 'all';
- renderControlCharacters: boolean;
- lineParts: LineParts;
+ public readonly lineContent: string;
+ public readonly lineTokens: ViewLineTokens;
+ public readonly lineDecorations: Decoration[];
+ public readonly tabSize: number;
+ public readonly spaceWidth: number;
+ public readonly stopRenderingLineAfter: number;
+ public readonly renderWhitespace: 'none' | 'boundary' | 'all';
+ public readonly renderControlCharacters: boolean;
constructor(
lineContent: string,
+ lineTokens: ViewLineTokens,
+ lineDecorations: Decoration[],
tabSize: number,
spaceWidth: number,
stopRenderingLineAfter: number,
renderWhitespace: 'none' | 'boundary' | 'all',
renderControlCharacters: boolean,
- lineParts: LineParts
) {
this.lineContent = lineContent;
+ this.lineTokens = lineTokens;
+ this.lineDecorations = lineDecorations;
this.tabSize = tabSize;
this.spaceWidth = spaceWidth;
this.stopRenderingLineAfter = stopRenderingLineAfter;
this.renderWhitespace = renderWhitespace;
this.renderControlCharacters = renderControlCharacters;
- this.lineParts = lineParts;
}
- public equals(other: RenderLineInput): boolean {
+ public equals(other: RenderLineInput2): boolean {
return (
this.lineContent === other.lineContent
&& this.tabSize === other.tabSize
@@ -45,11 +48,64 @@ export class RenderLineInput {
&& this.stopRenderingLineAfter === other.stopRenderingLineAfter
&& this.renderWhitespace === other.renderWhitespace
&& this.renderControlCharacters === other.renderControlCharacters
- && this.lineParts.equals(other.lineParts)
+ && Decoration.equalsArr(this.lineDecorations, other.lineDecorations)
+ && this.lineTokens.equals(other.lineTokens)
);
}
}
+export function render2(input: RenderLineInput2): RenderLineOutput {
+ let newLineParts = createLineParts(
+ input.lineContent,
+ input.tabSize,
+ input.lineTokens,
+ input.lineDecorations,
+ input.renderWhitespace
+ );
+
+ let renderLineInput = new RenderLineInput(
+ input.lineContent,
+ input.tabSize,
+ input.spaceWidth,
+ input.stopRenderingLineAfter,
+ input.renderWhitespace,
+ input.renderControlCharacters,
+ newLineParts
+ );
+
+ return renderLine(renderLineInput);
+}
+
+class RenderLineInput {
+ _renderLineInputBrand: void;
+
+ lineContent: string;
+ tabSize: number;
+ spaceWidth: number;
+ stopRenderingLineAfter: number;
+ renderWhitespace: 'none' | 'boundary' | 'all';
+ renderControlCharacters: boolean;
+ lineParts: LineParts;
+
+ constructor(
+ lineContent: string,
+ tabSize: number,
+ spaceWidth: number,
+ stopRenderingLineAfter: number,
+ renderWhitespace: 'none' | 'boundary' | 'all',
+ renderControlCharacters: boolean,
+ lineParts: LineParts
+ ) {
+ this.lineContent = lineContent;
+ this.tabSize = tabSize;
+ this.spaceWidth = spaceWidth;
+ this.stopRenderingLineAfter = stopRenderingLineAfter;
+ this.renderWhitespace = renderWhitespace;
+ this.renderControlCharacters = renderControlCharacters;
+ this.lineParts = lineParts;
+ }
+}
+
export const enum CharacterMappingConstants {
PART_INDEX_MASK = 0b11111111111111110000000000000000,
CHAR_INDEX_MASK = 0b00000000000000001111111111111111,
@@ -173,7 +229,7 @@ export class RenderLineOutput {
}
}
-export function renderLine(input: RenderLineInput): RenderLineOutput {
+function renderLine(input: RenderLineInput): RenderLineOutput {
const lineText = input.lineContent;
const lineTextLength = lineText.length;
const tabSize = input.tabSize;
diff --git a/src/vs/editor/test/common/viewLayout/viewLineParts.test.ts b/src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
index 87d64c6a34476c73cdba7f965ad5f964e8321a57..ce00ea5ca390b8833e71b022ec5df2b57509b8d6 100644
--- a/src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
+++ b/src/vs/editor/test/common/viewLayout/viewLineParts.test.ts
@@ -7,10 +7,9 @@
import * as assert from 'assert';
import { DecorationSegment, LineDecorationsNormalizer, createLineParts, Decoration } from 'vs/editor/common/viewLayout/viewLineParts';
import { Range } from 'vs/editor/common/core/range';
-import { RenderLineInput, renderLine } from 'vs/editor/common/viewLayout/viewLineRenderer';
+import { RenderLineInput2, render2 } from 'vs/editor/common/viewLayout/viewLineRenderer';
import { ViewLineToken, ViewLineTokens } from 'vs/editor/common/core/viewLineToken';
import { InlineDecoration } from 'vs/editor/common/viewModel/viewModel';
-import { LineParts } from 'vs/editor/common/core/lineParts';
suite('Editor ViewLayout - ViewLineParts', () => {
@@ -337,7 +336,16 @@ suite('Editor ViewLayout - ViewLineParts', () => {
});
function createTestGetColumnOfLinePartOffset(lineContent: string, tabSize: number, parts: ViewLineToken[]): (partIndex: number, partLength: number, offset: number, expected: number) => void {
- let renderLineOutput = renderLine(new RenderLineInput(lineContent, tabSize, 10, -1, 'none', false, new LineParts(parts, lineContent.length + 1)));
+ let renderLineOutput = render2(new RenderLineInput2(
+ lineContent,
+ new ViewLineTokens(parts, 0, lineContent.length),
+ [],
+ tabSize,
+ 10,
+ -1,
+ 'none',
+ false
+ ));
return (partIndex: number, partLength: number, offset: number, expected: number) => {
let charOffset = renderLineOutput.characterMapping.partDataToCharOffset(partIndex, partLength, offset);
diff --git a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts
index 65333a15943f0df6f9a534dbbc4af110f4e5cca4..d9d3d987b96a29cb07e418d2850951ec24785149 100644
--- a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts
+++ b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts
@@ -5,10 +5,9 @@
'use strict';
import * as assert from 'assert';
-import { renderLine, RenderLineInput, CharacterMapping } from 'vs/editor/common/viewLayout/viewLineRenderer';
-import { ViewLineToken } from 'vs/editor/common/core/viewLineToken';
+import { render2, RenderLineInput2, CharacterMapping } from 'vs/editor/common/viewLayout/viewLineRenderer';
+import { ViewLineToken, ViewLineTokens } from 'vs/editor/common/core/viewLineToken';
import { CharCode } from 'vs/base/common/charCode';
-import { LineParts } from 'vs/editor/common/core/lineParts';
suite('viewLineRenderer.renderLine', () => {
@@ -17,14 +16,15 @@ suite('viewLineRenderer.renderLine', () => {
}
function assertCharacterReplacement(lineContent: string, tabSize: number, expected: string, expectedCharOffsetInPart: number[][]): void {
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
lineContent,
+ new ViewLineTokens([new ViewLineToken(0, '')], 0, lineContent.length),
+ [],
tabSize,
0,
-1,
'none',
- false,
- new LineParts([createPart(0, '')], lineContent.length + 1)
+ false
));
assert.equal(_actual.output, '' + expected + '');
@@ -59,14 +59,15 @@ suite('viewLineRenderer.renderLine', () => {
});
function assertParts(lineContent: string, tabSize: number, parts: ViewLineToken[], expected: string, expectedCharOffsetInPart: number[][]): void {
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
lineContent,
+ new ViewLineTokens(parts, 0, lineContent.length),
+ [],
tabSize,
0,
-1,
'none',
- false,
- new LineParts(parts, lineContent.length + 1)
+ false
));
assert.equal(_actual.output, '' + expected + '');
@@ -90,30 +91,28 @@ suite('viewLineRenderer.renderLine', () => {
});
test('overflow', () => {
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
'Hello world!',
+ new ViewLineTokens([
+ createPart(0, '0'),
+ createPart(1, '1'),
+ createPart(2, '2'),
+ createPart(3, '3'),
+ createPart(4, '4'),
+ createPart(5, '5'),
+ createPart(6, '6'),
+ createPart(7, '7'),
+ createPart(8, '8'),
+ createPart(9, '9'),
+ createPart(10, '10'),
+ createPart(11, '11'),
+ ], 0, 'Hello world!'.length),
+ [],
4,
10,
6,
'boundary',
- false,
- new LineParts(
- [
- createPart(0, '0'),
- createPart(1, '1'),
- createPart(2, '2'),
- createPart(3, '3'),
- createPart(4, '4'),
- createPart(5, '5'),
- createPart(6, '6'),
- createPart(7, '7'),
- createPart(8, '8'),
- createPart(9, '9'),
- createPart(10, '10'),
- createPart(11, '11'),
- ],
- 'Hello world!'.length + 1
- )
+ false
));
let expectedOutput = [
@@ -139,7 +138,7 @@ suite('viewLineRenderer.renderLine', () => {
test('typical line', () => {
let lineText = '\t export class Game { // http://test.com ';
let lineParts = [
- createPart(0, 'block meta ts vs-whitespace'),
+ createPart(0, 'block meta ts'),
createPart(5, 'block declaration meta modifier object storage ts'),
createPart(11, 'block declaration meta object ts'),
createPart(12, 'block declaration meta object storage type ts'),
@@ -150,10 +149,11 @@ suite('viewLineRenderer.renderLine', () => {
createPart(24, 'block body declaration meta object ts'),
createPart(25, 'block body comment declaration line meta object ts'),
createPart(28, 'block body comment declaration line meta object ts detected-link'),
- createPart(43, 'block body comment declaration line meta object ts vs-whitespace'),
+ createPart(43, 'block body comment declaration line meta object ts'),
];
let expectedOutput = [
- '→ ····',
+ '→ ',
+ '····',
'export',
' ',
'class',
@@ -164,10 +164,12 @@ suite('viewLineRenderer.renderLine', () => {
' ',
'// ',
'http://test.com',
- '·····'
+ '··',
+ '···'
].join('');
let expectedOffsetsArr = [
- [0, 4, 5, 6, 7],
+ [0],
+ [0, 1, 2, 3],
[0, 1, 2, 3, 4, 5],
[0],
[0, 1, 2, 3, 4],
@@ -178,17 +180,19 @@ suite('viewLineRenderer.renderLine', () => {
[0],
[0, 1, 2],
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
- [0, 1, 2, 3, 4, 5],
+ [0, 1],
+ [0, 1, 2, 3],
];
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
lineText,
+ new ViewLineTokens(lineParts, 0, lineText.length),
+ [],
4,
10,
-1,
'boundary',
- false,
- new LineParts(lineParts, lineText.length + 1)
+ false
));
assert.equal(_actual.output, '' + expectedOutput + '');
@@ -235,14 +239,15 @@ suite('viewLineRenderer.renderLine', () => {
[0, 1] // 2 chars
];
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
lineText,
+ new ViewLineTokens(lineParts, 0, lineText.length),
+ [],
4,
10,
-1,
'none',
- false,
- new LineParts(lineParts, lineText.length + 1)
+ false
));
assert.equal(_actual.output, '' + expectedOutput + '');
@@ -289,14 +294,15 @@ suite('viewLineRenderer.renderLine', () => {
[0, 1] // 2 chars
];
- let _actual = renderLine(new RenderLineInput(
+ let _actual = render2(new RenderLineInput2(
lineText,
+ new ViewLineTokens(lineParts, 0, lineText.length),
+ [],
4,
10,
-1,
'none',
- false,
- new LineParts(lineParts, lineText.length + 1)
+ false
));
assert.equal(_actual.output, '' + expectedOutput + '');