text-manipulation
Version:
A NPM library that assists in text range manipulation
152 lines (151 loc) • 3.93 kB
TypeScript
import { TextRange } from './text-range';
export interface TextBuffer {
/**
* The number of lines in the buffer
* @returns {number}
*/
getLineCount(): number;
/**
* The string representation of the buffer
* @returns {string}
*/
getText(): string;
/**
* Replaces the provided text range, with the given text string
*
* @param {TextRange} textRange
* @param {string} text
* @returns {TextRange | undefined}
*/
replaceRange(textRange: TextRange, text: string): TextRange | undefined;
/**
* Get the text within a specified range
*
* @param {TextRange} range
* @returns {string}
*/
getRangeText(range: TextRange): string;
/**
* Remove the lines between lineStart and lineEnd
* The range between lineStart and lineEnd is inclusive.
*
* @param {number} lineStart
* @param {number} lineEnd
*/
removeLineRange(lineStart: number, lineEnd: number): void;
/**
* Remove the first line
*/
removeFirstLine(): void;
/**
* Remove the last line
*/
removeLastLine(): void;
/**
* Remove the specified line number
*
* (Lines are zero indexed)
*
* @param {number} line
*/
removeLine(line: number): void;
/**
* Checks a if a specified line is empty
*
* (Lines are zero indexed)
*
* @param {number} line
* @returns {boolean}
*/
isLineEmpty(line: number): boolean;
/**
* Insert a new text line before the specified line
*
* (Lines are zero indexed)
*
* @param {number} line
* @param {string} textLine
*/
insertTextAtLine(line: number, textLine: string): void;
/**
* Check if a line exists
*
* (Lines are zero indexed)
*
* @param {number} line
* @returns {boolean}
*/
lineExists(line: number): boolean;
/**
* Get the string of an entire line
*
* (Lines are zero indexed)
*
* @param {number} line
* @returns {string}
*/
getLine(line: number): string;
/**
* Get all the lines within the inclusive line range
*
* @param {number} lineStart
* @param {number} lineEnd
* @returns {string}
*/
getLineRange(lineStart: number, lineEnd: number): string;
/**
* Check if the column in the line exists, in the text buffer
*
* @param {number} column
* @param {number} line
* @returns {boolean}
*/
columnExists(column: number, line: number): boolean;
/**
* Count the number of columns in the line
*
* @param {number} line
* @returns {number}
*/
getColumnCount(line: number): number;
/**
* Read the character at the given line and column
*
* @param {number} column
* @param {number} line
* @returns {string}
*/
charAt(column: number, line: number): string;
/**
* Insert text at the specified column and line
*
* @param {number} column
* @param {number} line
* @param {string} text
*/
insertText(column: number, line: number, text: string): void;
/**
* Remove a column
*
* @param {number} column
* @param {number} line
*/
removeColumn(column: number, line: number): void;
/**
* Get text between columnStart and up to but not including columnEnd
*
* @param {number} columnStart
* @param {number} columnEnd
* @param {number} line
* @returns {string}
*/
getColumnRange(columnStart: number, columnEnd: number, line: number): string;
/**
* Remove the text between columnStart and up to but not including columnEnd
*
* @param {number} columnStart
* @param {number} columnEnd
* @param {number} line
*/
removeColumnRange(columnStart: number, columnEnd: number, line: number): void;
}