11import { useEffect , useState } from "react" ;
22import CodeMirror from "@uiw/react-codemirror" ;
33import "./App.css" ;
4- import { linesDiffComputers } from "codiff" ;
4+ import { Codiff } from "codiff" ;
55import { Change , Chunk } from "@codemirror/merge" ;
66import { Text } from "@codemirror/state" ;
77import { generateSimilarCode } from "./util" ;
@@ -11,16 +11,12 @@ import { json } from "@codemirror/lang-json";
1111const Original = CodeMirrorMerge . Original ;
1212const Modified = CodeMirrorMerge . Modified ;
1313
14+ const codiff = new Codiff ( ) ;
15+
1416const overrideBuild = ( ) => {
1517 const buildChunks = ( a : Text , b : Text ) : readonly Chunk [ ] => {
1618 console . log ( "diff compute" ) ;
17- const result = linesDiffComputers
18- . getDefault ( )
19- . computeDiff ( a . toJSON ( ) , b . toJSON ( ) , {
20- computeMoves : true ,
21- ignoreTrimWhitespace : true ,
22- maxComputationTimeMs : 100 ,
23- } ) ;
19+ const result = codiff . computeDiff ( a . toString ( ) , b . toString ( ) ) ;
2420 return result . changes . map < Chunk > ( ( item ) => {
2521 const getPosition = ( text : Text , from : number , to : number ) => {
2622 if ( from === to ) {
@@ -36,13 +32,13 @@ const overrideBuild = () => {
3632 const origin = getPosition (
3733 a ,
3834 item . original . startLineNumber ,
39- item . original . endLineNumberExclusive ,
35+ item . original . endLineNumberExclusive
4036 ) ;
4137
4238 const modified = getPosition (
4339 b ,
4440 item . modified . startLineNumber ,
45- item . modified . endLineNumberExclusive ,
41+ item . modified . endLineNumberExclusive
4642 ) ;
4743
4844 const nonNegative = ( a : number ) => {
@@ -55,25 +51,25 @@ const overrideBuild = () => {
5551 a . line ( inner . originalRange . startLineNumber ) . from +
5652 inner . originalRange . startColumn -
5753 1 -
58- origin . from ,
54+ origin . from
5955 ) ,
6056 toA : nonNegative (
6157 a . line ( inner . originalRange . endLineNumber ) . from +
6258 inner . originalRange . endColumn -
6359 1 -
64- origin . from ,
60+ origin . from
6561 ) ,
6662 fromB : nonNegative (
6763 b . line ( inner . modifiedRange . startLineNumber ) . from +
6864 inner . modifiedRange . startColumn -
6965 1 -
70- modified . from ,
66+ modified . from
7167 ) ,
7268 toB : nonNegative (
7369 b . line ( inner . modifiedRange . endLineNumber ) . from +
7470 inner . modifiedRange . endColumn -
7571 1 -
76- modified . from ,
72+ modified . from
7773 ) ,
7874 } ;
7975 } ) ;
@@ -83,7 +79,7 @@ const overrideBuild = () => {
8379 origin . from ,
8480 origin . to + 1 ,
8581 modified . from ,
86- modified . to + 1 ,
82+ modified . to + 1
8783 ) ;
8884 return chunk ;
8985 } ) ;
@@ -118,21 +114,15 @@ function App() {
118114 const handleGenerate = ( ) => {
119115 const { codeA : origin , codeB : modified } = generateSimilarCode (
120116 maxLine ,
121- maxDiff ,
117+ maxDiff
122118 ) ;
123119 setOrigin ( origin ) ;
124120 setModified ( modified ) ;
125121 } ;
126122
127123 useEffect ( ( ) => {
128124 const start = performance . now ( ) ;
129- const result = linesDiffComputers
130- . getDefault ( )
131- . computeDiff ( origin . split ( "\n" ) , modified . split ( "\n" ) , {
132- computeMoves : true ,
133- ignoreTrimWhitespace : true ,
134- maxComputationTimeMs : 100 ,
135- } ) ;
125+ const result = codiff . computeDiff ( origin , modified ) ;
136126 const end = performance . now ( ) ;
137127 setDiffms ( ( end - start ) . toFixed ( 3 ) ) ;
138128 setDiff ( JSON . stringify ( result , undefined , 2 ) ) ;
0 commit comments