blob: 1a8920725c0fac2fe7e97a2d6a73fdf3e29762c5 [file] [log] [blame]
/**
* @license
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {
FILE,
GrDiffLine as GrDiffLineApi,
GrDiffLineType,
LineNumber,
Side,
} from '../../../api/diff';
export class GrDiffLine implements GrDiffLineApi {
constructor(
readonly type: GrDiffLineType,
public beforeNumber: LineNumber = 0,
public afterNumber: LineNumber = 0
) {}
hasIntralineInfo = false;
highlights: Highlights[] = [];
text = '';
lineNumber(side: Side) {
return side === Side.LEFT ? this.beforeNumber : this.afterNumber;
}
// TODO(TS): remove this properties
static readonly Type = GrDiffLineType;
static readonly File = FILE;
}
/**
* A line highlight object consists of three fields:
* - contentIndex: The index of the chunk `content` field (the line
* being referred to).
* - startIndex: Index of the character where the highlight should begin.
* - endIndex: (optional) Index of the character where the highlight should
* end. If omitted, the highlight is meant to be a continuation onto the
* next line.
*/
export interface Highlights {
contentIndex: number;
startIndex: number;
endIndex?: number;
}
export const BLANK_LINE = new GrDiffLine(GrDiffLineType.BLANK);