@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
TypeScript
/**
* @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