43 lines
858 B
TypeScript
43 lines
858 B
TypeScript
import type { ToolInput } from './useFilePermissionDialog.js'
|
|
|
|
export interface FileEdit {
|
|
old_string: string
|
|
new_string: string
|
|
replace_all?: boolean
|
|
}
|
|
|
|
export interface IDEDiffConfig {
|
|
filePath: string
|
|
edits?: FileEdit[]
|
|
editMode?: 'single' | 'multiple'
|
|
}
|
|
|
|
export interface IDEDiffChangeInput {
|
|
file_path: string
|
|
edits: FileEdit[]
|
|
}
|
|
|
|
export interface IDEDiffSupport<TInput extends ToolInput> {
|
|
getConfig(input: TInput): IDEDiffConfig
|
|
applyChanges(input: TInput, modifiedEdits: FileEdit[]): TInput
|
|
}
|
|
|
|
export function createSingleEditDiffConfig(
|
|
filePath: string,
|
|
oldString: string,
|
|
newString: string,
|
|
replaceAll?: boolean,
|
|
): IDEDiffConfig {
|
|
return {
|
|
filePath,
|
|
edits: [
|
|
{
|
|
old_string: oldString,
|
|
new_string: newString,
|
|
replace_all: replaceAll,
|
|
},
|
|
],
|
|
editMode: 'single',
|
|
}
|
|
}
|