UNPKG

@phroun/paged-buffer

Version:

High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities

76 lines 3.7 kB
/** * @fileoverview Enhanced Paged Buffer System with Line Tracking and Named Marks * @description High-performance buffer system for handling arbitrarily large files * with constant memory usage, intelligent undo/redo, robust address translation, * comprehensive line tracking, named marks support, and pluggable storage backends. * * @example * import { PagedBuffer } from 'paged-buffer-system'; * * const buffer = new PagedBuffer(); * buffer.enableUndo(); * await buffer.loadFile('large-file.txt'); * * // Basic operations * await buffer.insertBytes(100, Buffer.from('Hello')); * * // Line operations * const lineCount = await buffer.getLineCount(); * const lineInfo = await buffer.getLineInfo(5); // Get info about line 5 * * // Named marks * buffer.setMark('bookmark1', 100); * const bookmarkPos = buffer.getMark('bookmark1'); * const allMarks = buffer.getAllMarks(); * * // Enhanced operations with marks * const result = await buffer.getBytes(0, 100, true); // Include marks * await buffer.insertBytes(50, Buffer.from('text'), [ * { name: 'mark1', relativeOffset: 0 }, * { name: 'mark2', relativeOffset: 4 } * ]); * * @author Jeffrey R. Day * @version 2.2.0 */ import { PagedBuffer } from './paged-buffer'; import { BufferOperation, OperationType } from './buffer-operation'; import { BufferUndoSystem, OperationGroup } from './undo-system'; import { PageStorage } from './storage/page-storage'; import { FilePageStorage } from './storage/file-page-storage'; import { MemoryPageStorage } from './storage/memory-page-storage'; import { PageInfo, LineInfo, MarkInfo } from './utils/page-info'; import { VirtualPageManager, PageDescriptor, PageAddressIndex } from './virtual-page-manager'; import { LineAndMarksManager, LineOperationResult, ExtractedContent } from './utils/line-marks-manager'; import { BufferState, FileChangeStrategy } from './types/buffer-types'; import { NotificationType, BufferNotification } from './types/notifications'; import { OperationPosition, OperationDescriptor, OperationDistanceCalculator } from './utils/operation-distance'; export { PagedBuffer, BufferUndoSystem, VirtualPageManager, LineAndMarksManager, PageStorage, FilePageStorage, MemoryPageStorage, PageInfo, LineInfo, MarkInfo, PageDescriptor, PageAddressIndex, LineOperationResult, ExtractedContent, BufferOperation, OperationGroup, OperationType, OperationPosition, OperationDescriptor, OperationDistanceCalculator, BufferNotification, BufferState, NotificationType, FileChangeStrategy }; declare const _default: { PagedBuffer: typeof PagedBuffer; BufferUndoSystem: typeof BufferUndoSystem; VirtualPageManager: typeof VirtualPageManager; LineAndMarksManager: typeof LineAndMarksManager; PageStorage: typeof PageStorage; FilePageStorage: typeof FilePageStorage; MemoryPageStorage: typeof MemoryPageStorage; PageInfo: typeof PageInfo; LineInfo: typeof LineInfo; MarkInfo: typeof MarkInfo; PageDescriptor: typeof PageDescriptor; PageAddressIndex: typeof PageAddressIndex; LineOperationResult: typeof LineOperationResult; ExtractedContent: typeof ExtractedContent; BufferOperation: typeof BufferOperation; OperationGroup: typeof OperationGroup; OperationType: typeof OperationType; OperationPosition: typeof OperationPosition; OperationDescriptor: typeof OperationDescriptor; OperationDistanceCalculator: typeof OperationDistanceCalculator; BufferNotification: typeof BufferNotification; BufferState: typeof BufferState; NotificationType: typeof NotificationType; FileChangeStrategy: typeof FileChangeStrategy; }; export default _default; //# sourceMappingURL=index.d.ts.map