git-tweezers
Version:
Advanced git staging tool with hunk and line-level control
29 lines (28 loc) • 1 kB
TypeScript
import { type GitDiff } from 'parse-git-diff';
import type { ExtendedLineChange } from '../types/extended-diff.js';
import type { FileInfo } from '../types/hunk-info.js';
export interface ParsedHunk {
index: number;
header: string;
oldStart: number;
oldLines: number;
newStart: number;
newLines: number;
changes: ExtendedLineChange[];
}
export interface ParsedFile {
oldPath: string;
newPath: string;
hunks: ParsedHunk[];
}
export declare class DiffParser {
parse(diffText: string): GitDiff;
parseFiles(diffText: string): ParsedFile[];
parseFilesWithInfo(diffText: string): FileInfo[];
private getOldPath;
private getNewPath;
getHunkCount(diffText: string): number;
getFileHunkCount(diffText: string, filePath: string): number;
extractHunk(diffText: string, filePath: string, hunkIndex: number): ParsedHunk | null;
extractLines(diffText: string, filePath: string, startLine: number, endLine: number): ExtendedLineChange[];
}