306
return cursorStop === InjectedTextCursorStops.Left || cursorStop === InjectedTextCursorStops.Both;
307
}
309
>
export class InjectedText {
310
>
constructor(public readonly options: InjectedTextOptions) { }
311
>
}
312
>
313
>
export class OutputPosition {
314
>
outputLineIndex: number;
315
>
outputOffset: number;
316
>
317
>
constructor(outputLineIndex: number, outputOffset: number) {
318
this.outputLineIndex = outputLineIndex;
319
this.outputOffset = outputOffset;
320
}
322
>
toString(): string {
323
return `${this.outputLineIndex}:${this.outputOffset}`;
324
}
326
>
toPosition(baseLineNumber: number): Position {
327
return new Position(baseLineNumber + this.outputLineIndex, this.outputOffset + 1);
328
}
330
>
331
>
export interface ILineBreaksComputerContext {
332
>
getLineContent(lineNumber: number): string;
333
>
getLineInjectedText(lineNumber: number): LineInjectedText[] | null;
334
>
}
335
>
336
>
export interface ILineBreaksComputerFactory {
337
>
createLineBreaksComputer(context: ILineBreaksComputerContext, fontInfo: FontInfo, tabSize: number, wrappingColumn: number, wrappingIndent: WrappingIndent, wordBreak: 'normal' | 'keepAll', wrapOnEscapedLineFeeds: boolean): ILineBreaksComputer;
338
>
}
339
>
340
>
export interface ILineBreaksComputer {
341
>
/**
342
>
* Pass in `previousLineBreakData` if the only difference is in breaking columns!!!
343
>
*/
344
>
addRequest(lineNumber: number, previousLineBreakData: ModelLineProjectionData | null): void;
345
>
finalize(): (ModelLineProjectionData | null)[];
346
>
}