// ComputeEdits returns the diffs of two strings using a simple // line-based implementation, like [diff.Strings]. // // Deprecated: this implementation is moribund. However, when diffs // appear in marker test expectations, they are the particular diffs // produced by this implementation. The marker test framework // asserts diff(orig, got)==wantDiff, but ideally it would compute // got==apply(orig, wantDiff) so that the notation of the diff // is immaterial. func ComputeEdits(before, after string) []diff.Edit { … } type opKind … const opDelete … const opInsert … const opEqual … func (kind opKind) String() string { … } type operation … // operations returns the list of operations to convert a into b, consolidating // operations for multiple lines and not including equal lines. func operations(a, b []string) []*operation { … } // backtrack uses the trace for the edit sequence computation and returns the // "snakes" that make up the solution. A "snake" is a single deletion or // insertion followed by zero or diagonals. func backtrack(trace [][]int, x, y, offset int) [][]int { … } // shortestEditSequence returns the shortest edit sequence that converts a into b. func shortestEditSequence(a, b []string) ([][]int, int) { … } func splitLines(text string) []string { … }