Skip to content

Commit

Permalink
Renames LineBreakData to ModelLineProjectionData
Browse files Browse the repository at this point in the history
  • Loading branch information
hediet committed Nov 9, 2021
1 parent 80ab37f commit 0b5e702
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 55 deletions.
16 changes: 8 additions & 8 deletions src/vs/editor/browser/view/domLineBreaksComputer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { createStringBuilder, IStringBuilder } from 'vs/editor/common/core/strin
import { CharCode } from 'vs/base/common/charCode';
import * as strings from 'vs/base/common/strings';
import { Configuration } from 'vs/editor/browser/config/configuration';
import { ILineBreaksComputer, ILineBreaksComputerFactory, LineBreakData } from 'vs/editor/common/viewModel/viewModel';
import { ILineBreaksComputer, ILineBreaksComputerFactory, ModelLineProjectionData } from 'vs/editor/common/viewModel/viewModel';
import { LineInjectedText } from 'vs/editor/common/model/textModelEvents';
import { InjectedTextOptions } from 'vs/editor/common/model';

Expand All @@ -31,7 +31,7 @@ export class DOMLineBreaksComputerFactory implements ILineBreaksComputerFactory
let requests: string[] = [];
let injectedTexts: (LineInjectedText[] | null)[] = [];
return {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: LineBreakData | null) => {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: ModelLineProjectionData | null) => {
requests.push(lineText);
injectedTexts.push(injectedText);
},
Expand All @@ -42,8 +42,8 @@ export class DOMLineBreaksComputerFactory implements ILineBreaksComputerFactory
}
}

function createLineBreaks(requests: string[], fontInfo: FontInfo, tabSize: number, firstLineBreakColumn: number, wrappingIndent: WrappingIndent, injectedTextsPerLine: (LineInjectedText[] | null)[]): (LineBreakData | null)[] {
function createEmptyLineBreakWithPossiblyInjectedText(requestIdx: number): LineBreakData | null {
function createLineBreaks(requests: string[], fontInfo: FontInfo, tabSize: number, firstLineBreakColumn: number, wrappingIndent: WrappingIndent, injectedTextsPerLine: (LineInjectedText[] | null)[]): (ModelLineProjectionData | null)[] {
function createEmptyLineBreakWithPossiblyInjectedText(requestIdx: number): ModelLineProjectionData | null {
const injectedTexts = injectedTextsPerLine[requestIdx];
if (injectedTexts) {
const lineText = LineInjectedText.applyInjectedText(requests[requestIdx], injectedTexts);
Expand All @@ -53,14 +53,14 @@ function createLineBreaks(requests: string[], fontInfo: FontInfo, tabSize: numbe

// creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK
// because `breakOffsetsVisibleColumn` will never be used because it contains injected text
return new LineBreakData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
} else {
return null;
}
}

if (firstLineBreakColumn === -1) {
const result: (LineBreakData | null)[] = [];
const result: (ModelLineProjectionData | null)[] = [];
for (let i = 0, len = requests.length; i < len; i++) {
result[i] = createEmptyLineBreakWithPossiblyInjectedText(i);
}
Expand Down Expand Up @@ -138,7 +138,7 @@ function createLineBreaks(requests: string[], fontInfo: FontInfo, tabSize: numbe
let range = document.createRange();
const lineDomNodes = Array.prototype.slice.call(containerDomNode.children, 0);

let result: (LineBreakData | null)[] = [];
let result: (ModelLineProjectionData | null)[] = [];
for (let i = 0; i < requests.length; i++) {
const lineDomNode = lineDomNodes[i];
const breakOffsets: number[] | null = readLineBreaks(range, lineDomNode, renderLineContents[i], allCharOffsets[i]);
Expand Down Expand Up @@ -174,7 +174,7 @@ function createLineBreaks(requests: string[], fontInfo: FontInfo, tabSize: numbe
injectionOffsets = null;
}

result[i] = new LineBreakData(injectionOffsets, injectionOptions, breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength);
result[i] = new ModelLineProjectionData(injectionOffsets, injectionOptions, breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength);
}

document.body.removeChild(containerDomNode);
Expand Down
16 changes: 8 additions & 8 deletions src/vs/editor/common/viewModel/modelLineProjection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { Position } from 'vs/editor/common/core/position';
import { IRange } from 'vs/editor/common/core/range';
import { EndOfLinePreference, ITextModel, PositionAffinity } from 'vs/editor/common/model';
import { LineInjectedText } from 'vs/editor/common/model/textModelEvents';
import { InjectedText, LineBreakData, SingleLineInlineDecoration, ViewLineData } from 'vs/editor/common/viewModel/viewModel';
import { InjectedText, ModelLineProjectionData, SingleLineInlineDecoration, ViewLineData } from 'vs/editor/common/viewModel/viewModel';

export interface IModelLineProjection {
isVisible(): boolean;
Expand All @@ -18,7 +18,7 @@ export interface IModelLineProjection {
*/
setVisible(isVisible: boolean): IModelLineProjection;

getLineBreakData(): LineBreakData | null;
getLineBreakData(): ModelLineProjectionData | null;
getViewLineCount(): number;
getViewLineContent(model: ISimpleModel, modelLineNumber: number, outputLineIndex: number): string;
getViewLineLength(model: ISimpleModel, modelLineNumber: number, outputLineIndex: number): number;
Expand All @@ -44,7 +44,7 @@ export interface ISimpleModel {
getValueInRange(range: IRange, eol?: EndOfLinePreference): string;
}

export function createModelLineProjection(lineBreakData: LineBreakData | null, isVisible: boolean): IModelLineProjection {
export function createModelLineProjection(lineBreakData: ModelLineProjectionData | null, isVisible: boolean): IModelLineProjection {
if (lineBreakData === null) {
// No mapping needed
if (isVisible) {
Expand All @@ -62,10 +62,10 @@ export function createModelLineProjection(lineBreakData: LineBreakData | null, i
* * inject text
*/
class ModelLineProjection implements IModelLineProjection {
private readonly _lineBreakData: LineBreakData;
private readonly _lineBreakData: ModelLineProjectionData;
private _isVisible: boolean;

constructor(lineBreakData: LineBreakData, isVisible: boolean) {
constructor(lineBreakData: ModelLineProjectionData, isVisible: boolean) {
this._lineBreakData = lineBreakData;
this._isVisible = isVisible;
}
Expand All @@ -79,7 +79,7 @@ class ModelLineProjection implements IModelLineProjection {
return this;
}

public getLineBreakData(): LineBreakData | null {
public getLineBreakData(): ModelLineProjectionData | null {
return this._lineBreakData;
}

Expand Down Expand Up @@ -287,7 +287,7 @@ class IdentityModelLineProjection implements IModelLineProjection {
return HiddenModelLineProjection.INSTANCE;
}

public getLineBreakData(): LineBreakData | null {
public getLineBreakData(): ModelLineProjectionData | null {
return null;
}

Expand Down Expand Up @@ -373,7 +373,7 @@ class HiddenModelLineProjection implements IModelLineProjection {
return IdentityModelLineProjection.INSTANCE;
}

public getLineBreakData(): LineBreakData | null {
public getLineBreakData(): ModelLineProjectionData | null {
return null;
}

Expand Down
18 changes: 9 additions & 9 deletions src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as strings from 'vs/base/common/strings';
import { WrappingIndent, IComputedEditorOptions, EditorOption } from 'vs/editor/common/config/editorOptions';
import { CharacterClassifier } from 'vs/editor/common/core/characterClassifier';
import { FontInfo } from 'vs/editor/common/config/fontInfo';
import { ILineBreaksComputer, ILineBreaksComputerFactory, LineBreakData } from 'vs/editor/common/viewModel/viewModel';
import { ILineBreaksComputer, ILineBreaksComputerFactory, ModelLineProjectionData } from 'vs/editor/common/viewModel/viewModel';
import { LineInjectedText } from 'vs/editor/common/model/textModelEvents';
import { InjectedTextOptions } from 'vs/editor/common/model';

Expand Down Expand Up @@ -78,16 +78,16 @@ export class MonospaceLineBreaksComputerFactory implements ILineBreaksComputerFa

const requests: string[] = [];
const injectedTexts: (LineInjectedText[] | null)[] = [];
const previousBreakingData: (LineBreakData | null)[] = [];
const previousBreakingData: (ModelLineProjectionData | null)[] = [];
return {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: LineBreakData | null) => {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: ModelLineProjectionData | null) => {
requests.push(lineText);
injectedTexts.push(injectedText);
previousBreakingData.push(previousLineBreakData);
},
finalize: () => {
const columnsForFullWidthChar = fontInfo.typicalFullwidthCharacterWidth / fontInfo.typicalHalfwidthCharacterWidth; //@perf
let result: (LineBreakData | null)[] = [];
let result: (ModelLineProjectionData | null)[] = [];
for (let i = 0, len = requests.length; i < len; i++) {
const injectedText = injectedTexts[i];
const previousLineBreakData = previousBreakingData[i];
Expand All @@ -105,7 +105,7 @@ export class MonospaceLineBreaksComputerFactory implements ILineBreaksComputerFa
}
}

function createLineBreaksFromPreviousLineBreaks(classifier: WrappingCharacterClassifier, previousBreakingData: LineBreakData, lineText: string, tabSize: number, firstLineBreakColumn: number, columnsForFullWidthChar: number, wrappingIndent: WrappingIndent): LineBreakData | null {
function createLineBreaksFromPreviousLineBreaks(classifier: WrappingCharacterClassifier, previousBreakingData: ModelLineProjectionData, lineText: string, tabSize: number, firstLineBreakColumn: number, columnsForFullWidthChar: number, wrappingIndent: WrappingIndent): ModelLineProjectionData | null {
if (firstLineBreakColumn === -1) {
return null;
}
Expand Down Expand Up @@ -357,7 +357,7 @@ function createLineBreaksFromPreviousLineBreaks(classifier: WrappingCharacterCla
return previousBreakingData;
}

function createLineBreaks(classifier: WrappingCharacterClassifier, _lineText: string, injectedTexts: LineInjectedText[] | null, tabSize: number, firstLineBreakColumn: number, columnsForFullWidthChar: number, wrappingIndent: WrappingIndent): LineBreakData | null {
function createLineBreaks(classifier: WrappingCharacterClassifier, _lineText: string, injectedTexts: LineInjectedText[] | null, tabSize: number, firstLineBreakColumn: number, columnsForFullWidthChar: number, wrappingIndent: WrappingIndent): ModelLineProjectionData | null {
const lineText = LineInjectedText.applyInjectedText(_lineText, injectedTexts);

let injectionOptions: InjectedTextOptions[] | null;
Expand All @@ -376,7 +376,7 @@ function createLineBreaks(classifier: WrappingCharacterClassifier, _lineText: st
}
// creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK
// because `breakOffsetsVisibleColumn` will never be used because it contains injected text
return new LineBreakData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
}

const len = lineText.length;
Expand All @@ -386,7 +386,7 @@ function createLineBreaks(classifier: WrappingCharacterClassifier, _lineText: st
}
// creating a `LineBreakData` with an invalid `breakOffsetsVisibleColumn` is OK
// because `breakOffsetsVisibleColumn` will never be used because it contains injected text
return new LineBreakData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);
}

const wrappedTextIndentLength = computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent);
Expand Down Expand Up @@ -464,7 +464,7 @@ function createLineBreaks(classifier: WrappingCharacterClassifier, _lineText: st
breakingOffsets[breakingOffsetsCount] = len;
breakingOffsetsVisibleColumn[breakingOffsetsCount] = visibleColumn;

return new LineBreakData(injectionOffsets, injectionOptions, breakingOffsets, breakingOffsetsVisibleColumn, wrappedTextIndentLength);
return new ModelLineProjectionData(injectionOffsets, injectionOptions, breakingOffsets, breakingOffsetsVisibleColumn, wrappedTextIndentLength);
}

function computeCharWidth(charCode: number, visibleColumn: number, tabSize: number, columnsForFullWidthChar: number): number {
Expand Down
6 changes: 3 additions & 3 deletions src/vs/editor/common/viewModel/viewModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export class OutputPosition {
* xxxxxx[ii]xxxx
* ```
*/
export class LineBreakData {
export class ModelLineProjectionData {
constructor(
public injectionOffsets: number[] | null,
/**
Expand Down Expand Up @@ -391,8 +391,8 @@ export interface ILineBreaksComputer {
/**
* Pass in `previousLineBreakData` if the only difference is in breaking columns!!!
*/
addRequest(lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: LineBreakData | null): void;
finalize(): (LineBreakData | null)[];
addRequest(lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: ModelLineProjectionData | null): void;
finalize(): (ModelLineProjectionData | null)[];
}

export interface IViewModel extends ICursorSimpleModel {
Expand Down
20 changes: 10 additions & 10 deletions src/vs/editor/common/viewModel/viewModelLines.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { LineInjectedText } from 'vs/editor/common/model/textModelEvents';
import * as viewEvents from 'vs/editor/common/view/viewEvents';
import { createModelLineProjection, IModelLineProjection } from 'vs/editor/common/viewModel/modelLineProjection';
import { ConstantTimePrefixSumComputer } from 'vs/editor/common/viewModel/prefixSumComputer';
import { ICoordinatesConverter, ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText, LineBreakData, ViewLineData } from 'vs/editor/common/viewModel/viewModel';
import { ICoordinatesConverter, ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText, ModelLineProjectionData, ViewLineData } from 'vs/editor/common/viewModel/viewModel';

export interface IViewModelLines extends IDisposable {
createCoordinatesConverter(): ICoordinatesConverter;
Expand All @@ -28,8 +28,8 @@ export interface IViewModelLines extends IDisposable {
createLineBreaksComputer(): ILineBreaksComputer;
onModelFlushed(): void;
onModelLinesDeleted(versionId: number | null, fromLineNumber: number, toLineNumber: number): viewEvents.ViewLinesDeletedEvent | null;
onModelLinesInserted(versionId: number | null, fromLineNumber: number, toLineNumber: number, lineBreaks: (LineBreakData | null)[]): viewEvents.ViewLinesInsertedEvent | null;
onModelLineChanged(versionId: number | null, lineNumber: number, lineBreakData: LineBreakData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null];
onModelLinesInserted(versionId: number | null, fromLineNumber: number, toLineNumber: number, lineBreaks: (ModelLineProjectionData | null)[]): viewEvents.ViewLinesInsertedEvent | null;
onModelLineChanged(versionId: number | null, lineNumber: number, lineBreakData: ModelLineProjectionData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null];
acceptVersionId(versionId: number): void;

getViewLineCount(): number;
Expand Down Expand Up @@ -111,7 +111,7 @@ export class ViewModelLinesFromProjectedModel implements IViewModelLines {
return new CoordinatesConverter(this);
}

private _constructLines(resetHiddenAreas: boolean, previousLineBreaks: ((LineBreakData | null)[]) | null): void {
private _constructLines(resetHiddenAreas: boolean, previousLineBreaks: ((ModelLineProjectionData | null)[]) | null): void {
this.modelLineProjections = [];

if (resetHiddenAreas) {
Expand Down Expand Up @@ -308,7 +308,7 @@ export class ViewModelLinesFromProjectedModel implements IViewModelLines {
this.wrappingColumn = wrappingColumn;
this.wrappingIndent = wrappingIndent;

let previousLineBreaks: ((LineBreakData | null)[]) | null = null;
let previousLineBreaks: ((ModelLineProjectionData | null)[]) | null = null;
if (onlyWrappingColumnChanged) {
previousLineBreaks = [];
for (let i = 0, len = this.modelLineProjections.length; i < len; i++) {
Expand Down Expand Up @@ -350,7 +350,7 @@ export class ViewModelLinesFromProjectedModel implements IViewModelLines {
return new viewEvents.ViewLinesDeletedEvent(outputFromLineNumber, outputToLineNumber);
}

public onModelLinesInserted(versionId: number | null, fromLineNumber: number, _toLineNumber: number, lineBreaks: (LineBreakData | null)[]): viewEvents.ViewLinesInsertedEvent | null {
public onModelLinesInserted(versionId: number | null, fromLineNumber: number, _toLineNumber: number, lineBreaks: (ModelLineProjectionData | null)[]): viewEvents.ViewLinesInsertedEvent | null {
if (!versionId || versionId <= this._validModelVersionId) {
// Here we check for versionId in case the lines were reconstructed in the meantime.
// We don't want to apply stale change events on top of a newer read model state.
Expand Down Expand Up @@ -386,7 +386,7 @@ export class ViewModelLinesFromProjectedModel implements IViewModelLines {
return new viewEvents.ViewLinesInsertedEvent(outputFromLineNumber, outputFromLineNumber + totalOutputLineCount - 1);
}

public onModelLineChanged(versionId: number | null, lineNumber: number, lineBreakData: LineBreakData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null] {
public onModelLineChanged(versionId: number | null, lineNumber: number, lineBreakData: ModelLineProjectionData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null] {
if (versionId !== null && versionId <= this._validModelVersionId) {
// Here we check for versionId in case the lines were reconstructed in the meantime.
// We don't want to apply stale change events on top of a newer read model state.
Expand Down Expand Up @@ -1056,7 +1056,7 @@ export class ViewModelLinesFromModelAsIs implements IViewModelLines {
public createLineBreaksComputer(): ILineBreaksComputer {
let result: null[] = [];
return {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: LineBreakData | null) => {
addRequest: (lineText: string, injectedText: LineInjectedText[] | null, previousLineBreakData: ModelLineProjectionData | null) => {
result.push(null);
},
finalize: () => {
Expand All @@ -1072,11 +1072,11 @@ export class ViewModelLinesFromModelAsIs implements IViewModelLines {
return new viewEvents.ViewLinesDeletedEvent(fromLineNumber, toLineNumber);
}

public onModelLinesInserted(_versionId: number | null, fromLineNumber: number, toLineNumber: number, lineBreaks: (LineBreakData | null)[]): viewEvents.ViewLinesInsertedEvent | null {
public onModelLinesInserted(_versionId: number | null, fromLineNumber: number, toLineNumber: number, lineBreaks: (ModelLineProjectionData | null)[]): viewEvents.ViewLinesInsertedEvent | null {
return new viewEvents.ViewLinesInsertedEvent(fromLineNumber, toLineNumber);
}

public onModelLineChanged(_versionId: number | null, lineNumber: number, lineBreakData: LineBreakData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null] {
public onModelLineChanged(_versionId: number | null, lineNumber: number, lineBreakData: ModelLineProjectionData | null): [boolean, viewEvents.ViewLinesChangedEvent | null, viewEvents.ViewLinesInsertedEvent | null, viewEvents.ViewLinesDeletedEvent | null] {
return [false, new viewEvents.ViewLinesChangedEvent(lineNumber, lineNumber), null, null];
}

Expand Down
Loading

0 comments on commit 0b5e702

Please sign in to comment.