@github/copilot-language-server 1.348.0 → 1.350.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/diffWorker.js +1 -1
- package/dist/diffWorker.js.map +1 -1
- package/dist/main.js +502 -503
- package/dist/main.js.map +3 -3
- package/native/darwin-arm64/copilot-language-server +0 -0
- package/native/darwin-x64/copilot-language-server +0 -0
- package/native/linux-arm64/copilot-language-server +0 -0
- package/native/linux-x64/copilot-language-server +0 -0
- package/native/win32-x64/copilot-language-server.exe +0 -0
- package/package.json +2 -2
package/dist/diffWorker.js
CHANGED
|
@@ -35,7 +35,7 @@ ${f.join(`
|
|
|
35
35
|
`+this._getLineContent(r);return n+=`
|
|
36
36
|
`+this._getLineContent(t.endLineNumber).substring(0,t.endColumn-1),n}getLineLength(t){return this._getLineContent(t).length}get length(){let t=this._getLineContent(this._lineCount);return new G(this._lineCount-1,t.length)}},se=class extends mt{static{s(this,"ArrayText")}constructor(e){super(t=>e[t-1],e.length)}},dt=class extends Ve{constructor(t){super();this.value=t;this._t=new Ie(this.value)}static{s(this,"StringText")}getValueOfRange(t){return this._t.getOffsetRange(t).substring(this.value)}get length(){return this._t.textLength}};var de=class{constructor(e,t,n){this.changes=e;this.moves=t;this.hitTimeout=n}static{s(this,"LinesDiff")}},ze=class i{static{s(this,"MovedText")}constructor(e,t){this.lineRangeMapping=e,this.changes=t}flip(){return new i(this.lineRangeMapping.flip(),this.changes.map(e=>e.flip()))}};var H=class i{static{s(this,"LineRangeMapping")}static inverse(e,t,n){let r=[],o=1,u=1;for(let a of e){let c=new i(new O(o,a.original.startLineNumber),new O(u,a.modified.startLineNumber));c.modified.isEmpty||r.push(c),o=a.original.endLineNumberExclusive,u=a.modified.endLineNumberExclusive}let l=new i(new O(o,t+1),new O(u,n+1));return l.modified.isEmpty||r.push(l),r}static clip(e,t,n){let r=[];for(let o of e){let u=o.original.intersect(t),l=o.modified.intersect(n);u&&!u.isEmpty&&l&&!l.isEmpty&&r.push(new i(u,l))}return r}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new i(this.modified,this.original)}join(e){return new i(this.original.join(e.original),this.modified.join(e.modified))}get changedLineCount(){return Math.max(this.original.length,this.modified.length)}toRangeMapping(){let e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new z(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new F("not a valid diff");return new z(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new z(new w(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new w(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,t){if(Ct(this.original.endLineNumberExclusive,e)&&Ct(this.modified.endLineNumberExclusive,t))return new z(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new z(w.fromPositions(new U(this.original.startLineNumber,1),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),w.fromPositions(new U(this.modified.startLineNumber,1),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new z(w.fromPositions(pe(new U(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),w.fromPositions(pe(new U(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));throw new F}};function pe(i,e){if(i.lineNumber<1)return new U(1,1);if(i.lineNumber>e.length)return new U(e.length,e[e.length-1].length+1);let t=e[i.lineNumber-1];return i.column>t.length+1?new U(i.lineNumber,t.length+1):i}s(pe,"normalizePosition");function Ct(i,e){return i>=1&&i<=e.length}s(Ct,"isValidLineNumber");var ge=class i extends H{static{s(this,"DetailedLineRangeMapping")}static fromRangeMappings(e){let t=O.join(e.map(r=>O.fromRangeInclusive(r.originalRange))),n=O.join(e.map(r=>O.fromRangeInclusive(r.modifiedRange)));return new i(t,n,e)}constructor(e,t,n){super(e,t),this.innerChanges=n}flip(){return new i(this.modified,this.original,this.innerChanges?.map(e=>e.flip()))}withInnerChangesFromLineRanges(){return new i(this.original,this.modified,[this.toRangeMapping()])}},z=class i{static{s(this,"RangeMapping")}static fromEdit(e){let t=e.getNewRanges();return e.edits.map((r,o)=>new i(r.range,t[o]))}static fromEditJoin(e){let t=e.getNewRanges(),n=e.edits.map((r,o)=>new i(r.range,t[o]));return i.join(n)}static join(e){if(e.length===0)throw new F("Cannot join an empty list of range mappings");let t=e[0];for(let n=1;n<e.length;n++)t=t.join(e[n]);return t}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.getEndPosition().isBeforeOrEqual(r.originalRange.getStartPosition())&&n.modifiedRange.getEndPosition().isBeforeOrEqual(r.modifiedRange.getStartPosition())))throw new F("Range mappings must be sorted")}}constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new i(this.modifiedRange,this.originalRange)}toTextEdit(e){let t=e.getValueOfRange(this.modifiedRange);return new $(this.originalRange,t)}join(e){return new i(this.originalRange.plusRange(e.originalRange),this.modifiedRange.plusRange(e.modifiedRange))}};function pt(i,e,t,n=!1){let r=[];for(let o of It(i.map(u=>An(u,e,t)),(u,l)=>u.original.overlapOrTouch(l.original)||u.modified.overlapOrTouch(l.modified))){let u=o[0],l=o[o.length-1];r.push(new ge(u.original.join(l.original),u.modified.join(l.modified),o.map(a=>a.innerChanges[0])))}return ie(()=>!n&&r.length>0&&(r[0].modified.startLineNumber!==r[0].original.startLineNumber||t.length.lineCount-r[r.length-1].modified.endLineNumberExclusive!==e.length.lineCount-r[r.length-1].original.endLineNumberExclusive)?!1:Pe(r,(o,u)=>u.original.startLineNumber-o.original.endLineNumberExclusive===u.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive<u.original.startLineNumber&&o.modified.endLineNumberExclusive<u.modified.startLineNumber)),r}s(pt,"lineRangeMappingFromRangeMappings");function An(i,e,t){let n=0,r=0;i.modifiedRange.endColumn===1&&i.originalRange.endColumn===1&&i.originalRange.startLineNumber+n<=i.originalRange.endLineNumber&&i.modifiedRange.startLineNumber+n<=i.modifiedRange.endLineNumber&&(r=-1),i.modifiedRange.startColumn-1>=t.getLineLength(i.modifiedRange.startLineNumber)&&i.originalRange.startColumn-1>=e.getLineLength(i.originalRange.startLineNumber)&&i.originalRange.startLineNumber<=i.originalRange.endLineNumber+r&&i.modifiedRange.startLineNumber<=i.modifiedRange.endLineNumber+r&&(n=1);let o=new O(i.originalRange.startLineNumber+n,i.originalRange.endLineNumber+1+r),u=new O(i.modifiedRange.startLineNumber+n,i.modifiedRange.endLineNumber+1+r);return new ge(o,u,[i])}s(An,"getLineRangeMapping");var X=class i{constructor(e,t){this.diffs=e;this.hitTimeout=t}static{s(this,"DiffAlgorithmResult")}static trivial(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!0)}},q=class i{constructor(e,t){this.seq1Range=e;this.seq2Range=t}static{s(this,"SequenceDiff")}static invert(e,t){let n=[];return yt(e,(r,o)=>{n.push(i.fromOffsetPairs(r?r.getEndExclusives():Q.zero,o?o.getStarts():new Q(t,(r?r.seq2Range.endExclusive-r.seq1Range.endExclusive:0)+t)))}),n}static fromOffsetPairs(e,t){return new i(new A(e.offset1,t.offset1),new A(e.offset2,t.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw new F("Sequence diffs must be sorted");t=n}}swap(){return new i(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new i(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new i(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new i(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new i(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(e){let t=this.seq1Range.intersect(e.seq1Range),n=this.seq2Range.intersect(e.seq2Range);if(!(!t||!n))return new i(t,n)}getStarts(){return new Q(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Q(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},Q=class i{constructor(e,t){this.offset1=e;this.offset2=t}static{s(this,"OffsetPair")}static{this.zero=new i(0,0)}static{this.max=new i(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new i(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},C=class i{static{s(this,"InfiniteTimeout")}static{this.instance=new i}isValid(){return!0}},We=class{constructor(e){this.timeout=e;this.startTime=Date.now();this.valid=!0;if(e<=0)throw new F("timeout must be positive")}static{s(this,"DateTimeout")}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}disable(){this.timeout=Number.MAX_SAFE_INTEGER,this.isValid=()=>!0,this.valid=!0}};var be=class{constructor(e,t){this.width=e;this.height=t;this.array=[];this.array=new Array(e*t)}static{s(this,"Array2D")}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}};function we(i){return i===32||i===9}s(we,"isSpace");var ye=class i{constructor(e,t,n){this.range=e;this.lines=t;this.source=n;this.histogram=[];let r=0;for(let o=e.startLineNumber-1;o<e.endLineNumberExclusive-1;o++){let u=t[o];for(let a=0;a<u.length;a++){r++;let c=u[a],f=i.getKey(c);this.histogram[f]=(this.histogram[f]||0)+1}r++;let l=i.getKey(`
|
|
37
37
|
`);this.histogram[l]=(this.histogram[l]||0)+1}this.totalCount=r}static{s(this,"LineRangeFragment")}static{this.chrKeys=new Map}static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}computeSimilarity(e){let t=0,n=Math.max(this.histogram.length,e.histogram.length);for(let r=0;r<n;r++)t+=Math.abs((this.histogram[r]??0)-(e.histogram[r]??0));return 1-t/(this.totalCount+e.totalCount)}};var je=class{static{s(this,"DynamicProgrammingDiffing")}compute(e,t,n=C.instance,r){if(e.length===0||t.length===0)return X.trivial(e,t);let o=new be(e.length,t.length),u=new be(e.length,t.length),l=new be(e.length,t.length);for(let g=0;g<e.length;g++)for(let x=0;x<t.length;x++){if(!n.isValid())return X.trivialTimedOut(e,t);let y=g===0?0:o.get(g-1,x),M=x===0?0:o.get(g,x-1),S;e.getElement(g)===t.getElement(x)?(g===0||x===0?S=0:S=o.get(g-1,x-1),g>0&&x>0&&u.get(g-1,x-1)===3&&(S+=l.get(g-1,x-1)),S+=r?r(g,x):1):S=-1;let P=Math.max(y,M,S);if(P===S){let b=g>0&&x>0?l.get(g-1,x-1):0;l.set(g,x,b+1),u.set(g,x,3)}else P===y?(l.set(g,x,0),u.set(g,x,1)):P===M&&(l.set(g,x,0),u.set(g,x,2));o.set(g,x,P)}let a=[],c=e.length,f=t.length;function m(g,x){(g+1!==c||x+1!==f)&&a.push(new q(new A(g+1,c),new A(x+1,f))),c=g,f=x}s(m,"reportDecreasingAligningPositions");let p=e.length-1,d=t.length-1;for(;p>=0&&d>=0;)u.get(p,d)===3?(m(p,d),p--,d--):u.get(p,d)===1?p--:d--;return m(-1,-1),a.reverse(),new X(a,!1)}};var he=class{static{s(this,"MyersDiffAlgorithm")}compute(e,t,n=C.instance){if(e.length===0||t.length===0)return X.trivial(e,t);let r=e,o=t;function u(x,y){for(;x<r.length&&y<o.length&&r.getElement(x)===o.getElement(y);)x++,y++;return x}s(u,"getXAfterSnake");let l=0,a=new gt;a.set(0,u(0,0));let c=new bt;c.set(0,a.get(0)===0?null:new Ge(null,0,0,a.get(0)));let f=0;e:for(;;){if(l++,!n.isValid())return X.trivialTimedOut(r,o);let x=-Math.min(l,o.length+l%2),y=Math.min(l,r.length+l%2);for(f=x;f<=y;f+=2){let M=0,S=f===y?-1:a.get(f+1),P=f===x?-1:a.get(f-1)+1;M++;let b=Math.min(Math.max(S,P),r.length),T=b-f;if(M++,b>r.length||T>o.length)continue;let _=u(b,T);a.set(f,_);let L=b===S?c.get(f+1):c.get(f-1);if(c.set(f,_!==b?new Ge(L,b,T,_-b):L),a.get(f)===r.length&&a.get(f)-f===o.length)break e}}let m=c.get(f),p=[],d=r.length,g=o.length;for(;;){let x=m?m.x+m.length:0,y=m?m.y+m.length:0;if((x!==d||y!==g)&&p.push(new q(new A(x,d),new A(y,g))),!m)break;d=m.x,g=m.y,m=m.prev}return p.reverse(),new X(p,!1)}},Ge=class{constructor(e,t,n,r){this.prev=e;this.x=t;this.y=n;this.length=r}static{s(this,"SnakePath")}},gt=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}static{s(this,"FastInt32Array")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let n=this.negativeArr;this.negativeArr=new Int32Array(n.length*2),this.negativeArr.set(n)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let n=this.positiveArr;this.positiveArr=new Int32Array(n.length*2),this.positiveArr.set(n)}this.positiveArr[e]=t}}},bt=class{constructor(){this.positiveArr=[];this.negativeArr=[]}static{s(this,"FastArrayNegativeIndices")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};var ee=class{constructor(e,t,n){this.lines=e;this.range=t;this.considerWhitespaceChanges=n;this.elements=[];this.firstElementOffsetByLineIdx=[];this.lineStartOffsets=[];this.trimmedWsLengthsByLineIdx=[];this.firstElementOffsetByLineIdx.push(0);for(let r=this.range.startLineNumber;r<=this.range.endLineNumber;r++){let o=e[r-1],u=0;r===this.range.startLineNumber&&this.range.startColumn>1&&(u=this.range.startColumn-1,o=o.substring(u)),this.lineStartOffsets.push(u);let l=0;if(!n){let c=o.trimStart();l=o.length-c.length,o=c.trimEnd()}this.trimmedWsLengthsByLineIdx.push(l);let a=r===this.range.endLineNumber?Math.min(this.range.endColumn-1-u-l,o.length):o.length;for(let c=0;c<a;c++)this.elements.push(o.charCodeAt(c));r<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}static{s(this,"LinesSliceCharSequence")}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new A(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=nn(e>0?this.elements[e-1]:-1),n=nn(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=tn(t),r+=tn(n),r}translateOffset(e,t="right"){let n=Y(this.firstElementOffsetByLineIdx,o=>o<=e),r=e-this.firstElementOffsetByLineIdx[n];return new U(this.range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t==="left"?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,"right"),n=this.translateOffset(e.endExclusive,"left");return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n]);)n++;return new A(t,n)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1])&&!en(this.elements[t]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n])&&!en(this.elements[n]);)n++;return new A(t,n)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){let t=J(this.firstElementOffsetByLineIdx,r=>r<=e.start)??0,n=Rt(this.firstElementOffsetByLineIdx,r=>e.endExclusive<=r)??this.elements.length;return new A(t,n)}};function Te(i){return i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57}s(Te,"isWordChar");function en(i){return i>=65&&i<=90}s(en,"isUpperCase");var On={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function tn(i){return On[i]}s(tn,"getCategoryBoundaryScore");function nn(i){return i===10?8:i===13?7:we(i)?6:i>=97&&i<=122?0:i>=65&&i<=90?1:i>=48&&i<=57?2:i===-1?3:i===44||i===59?5:4}s(nn,"getCategory");function sn(i,e,t,n,r,o){let{moves:u,excludedChanges:l}=Un(i,e,t,o);if(!o.isValid())return[];let a=i.filter(f=>!l.has(f)),c=kn(a,n,r,e,t,o);return Nt(u,c),u=Pn(u),u=u.filter(f=>{let m=f.original.toOffsetRange().slice(e).map(d=>d.trim());return m.join(`
|
|
38
|
-
`).length>=15&&Mn(m,d=>d.length>=2)>=2}),u=qn(i,u),u}s(sn,"computeMovedLines");function Mn(i,e){let t=0;for(let n of i)e(n)&&t++;return t}s(Mn,"countWhere");function Un(i,e,t,n){let r=[],o=i.filter(a=>a.modified.isEmpty&&a.original.length>=3).map(a=>new ye(a.original,e,a)),u=new Set(i.filter(a=>a.original.isEmpty&&a.modified.length>=3).map(a=>new ye(a.modified,t,a))),l=new Set;for(let a of o){let c=-1,f;for(let m of u){let p=a.computeSimilarity(m);p>c&&(c=p,f=m)}if(c>.9&&f&&(u.delete(f),r.push(new H(a.range,f.range)),l.add(a.source),l.add(f.source)),!n.isValid())return{moves:r,excludedChanges:l}}return{moves:r,excludedChanges:l}}s(Un,"computeMovesFromSimpleDeletionsToSimpleInsertions");function kn(i,e,t,n,r,o){let u=[],l=new ae;for(let p of i)for(let d=p.original.startLineNumber;d<p.original.endLineNumberExclusive-2;d++){let g=`${e[d-1]}:${e[d+1-1]}:${e[d+2-1]}`;l.add(g,{range:new O(d,d+3)})}let a=[];i.sort(te(p=>p.modified.startLineNumber,ne));for(let p of i){let d=[];for(let g=p.modified.startLineNumber;g<p.modified.endLineNumberExclusive-2;g++){let x=`${t[g-1]}:${t[g+1-1]}:${t[g+2-1]}`,y=new O(g,g+3),M=[];l.forEach(x,({range:S})=>{for(let b of d)if(b.originalLineRange.endLineNumberExclusive+1===S.endLineNumberExclusive&&b.modifiedLineRange.endLineNumberExclusive+1===y.endLineNumberExclusive){b.originalLineRange=new O(b.originalLineRange.startLineNumber,S.endLineNumberExclusive),b.modifiedLineRange=new O(b.modifiedLineRange.startLineNumber,y.endLineNumberExclusive),M.push(b);return}let P={modifiedLineRange:y,originalLineRange:S};a.push(P),M.push(P)}),d=M}if(!o.isValid())return[]}a.sort(St(te(p=>p.modifiedLineRange.length,ne)));let c=new re,f=new re;for(let p of a){let d=p.modifiedLineRange.startLineNumber-p.originalLineRange.startLineNumber,g=c.subtractFrom(p.modifiedLineRange),x=f.subtractFrom(p.originalLineRange).getWithDelta(d),y=g.getIntersection(x);for(let M of y.ranges){if(M.length<3)continue;let S=M,P=M.delta(-d);u.push(new H(P,S)),c.addRange(S),f.addRange(P)}}u.sort(te(p=>p.original.startLineNumber,ne));let m=new ve(i);for(let p=0;p<u.length;p++){let d=u[p],g=m.findLastMonotonous(_=>_.original.startLineNumber<=d.original.startLineNumber),x=J(i,_=>_.modified.startLineNumber<=d.modified.startLineNumber),y=Math.max(d.original.startLineNumber-g.original.startLineNumber,d.modified.startLineNumber-x.modified.startLineNumber),M=m.findLastMonotonous(_=>_.original.startLineNumber<d.original.endLineNumberExclusive),S=J(i,_=>_.modified.startLineNumber<d.modified.endLineNumberExclusive),P=Math.max(M.original.endLineNumberExclusive-d.original.endLineNumberExclusive,S.modified.endLineNumberExclusive-d.modified.endLineNumberExclusive),b;for(b=0;b<y;b++){let _=d.original.startLineNumber-b-1,L=d.modified.startLineNumber-b-1;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}b>0&&(f.addRange(new O(d.original.startLineNumber-b,d.original.startLineNumber)),c.addRange(new O(d.modified.startLineNumber-b,d.modified.startLineNumber)));let T;for(T=0;T<P;T++){let _=d.original.endLineNumberExclusive+T,L=d.modified.endLineNumberExclusive+T;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}T>0&&(f.addRange(new O(d.original.endLineNumberExclusive,d.original.endLineNumberExclusive+T)),c.addRange(new O(d.modified.endLineNumberExclusive,d.modified.endLineNumberExclusive+T))),(b>0||T>0)&&(u[p]=new H(new O(d.original.startLineNumber-b,d.original.endLineNumberExclusive+T),new O(d.modified.startLineNumber-b,d.modified.endLineNumberExclusive+T)))}return u}s(kn,"computeUnchangedMoves");function rn(i,e,t){if(i.trim()===e.trim())return!0;if(i.length>300&&e.length>300)return!1;let r=new he().compute(new ee([i],new w(1,1,1,i.length),!1),new ee([e],new w(1,1,1,e.length),!1),t),o=0,u=q.invert(r.diffs,i.length);for(let f of u)f.seq1Range.forEach(m=>{we(i.charCodeAt(m))||o++});function l(f){let m=0;for(let p=0;p<i.length;p++)we(f.charCodeAt(p))||m++;return m}s(l,"countNonWsChars");let a=l(i.length>e.length?i:e);return o/a>.6&&a>10}s(rn,"areLinesSimilar");function Pn(i){if(i.length===0)return i;i.sort(te(t=>t.original.startLineNumber,ne));let e=[i[0]];for(let t=1;t<i.length;t++){let n=e[e.length-1],r=i[t],o=r.original.startLineNumber-n.original.endLineNumberExclusive,u=r.modified.startLineNumber-n.modified.endLineNumberExclusive;if(o>=0&&u>=0&&o+u<=2){e[e.length-1]=n.join(r);continue}e.push(r)}return e}s(Pn,"joinCloseConsecutiveMoves");function qn(i,e){let t=new ve(i);return e=e.filter(n=>{let r=t.findLastMonotonous(l=>l.original.startLineNumber<n.original.endLineNumberExclusive)||new H(new O(1,1),new O(1,1)),o=J(i,l=>l.modified.startLineNumber<n.modified.endLineNumberExclusive);return r!==o}),e}s(qn,"removeMovesInSameDiff");function ht(i,e,t){let n=t;return n=on(i,e,n),n=on(i,e,n),n=Fn(i,e,n),n}s(ht,"optimizeSequenceDiffs");function on(i,e,t){if(t.length===0)return t;let n=[];n.push(t[0]);for(let o=1;o<t.length;o++){let u=n[n.length-1],l=t[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=l.seq1Range.start-u.seq1Range.endExclusive,c;for(c=1;c<=a&&!(i.getElement(l.seq1Range.start-c)!==i.getElement(l.seq1Range.endExclusive-c)||e.getElement(l.seq2Range.start-c)!==e.getElement(l.seq2Range.endExclusive-c));c++);if(c--,c===a){n[n.length-1]=new q(new A(u.seq1Range.start,l.seq1Range.endExclusive-a),new A(u.seq2Range.start,l.seq2Range.endExclusive-a));continue}l=l.delta(-c)}n.push(l)}let r=[];for(let o=0;o<n.length-1;o++){let u=n[o+1],l=n[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=u.seq1Range.start-l.seq1Range.endExclusive,c;for(c=0;c<a&&!(!i.isStronglyEqual(l.seq1Range.start+c,l.seq1Range.endExclusive+c)||!e.isStronglyEqual(l.seq2Range.start+c,l.seq2Range.endExclusive+c));c++);if(c===a){n[o+1]=new q(new A(l.seq1Range.start+a,u.seq1Range.endExclusive),new A(l.seq2Range.start+a,u.seq2Range.endExclusive));continue}c>0&&(l=l.delta(c))}r.push(l)}return n.length>0&&r.push(n[n.length-1]),r}s(on,"joinSequenceDiffsByShifting");function Fn(i,e,t){if(!i.getBoundaryScore||!e.getBoundaryScore)return t;for(let n=0;n<t.length;n++){let r=n>0?t[n-1]:void 0,o=t[n],u=n+1<t.length?t[n+1]:void 0,l=new A(r?r.seq1Range.endExclusive+1:0,u?u.seq1Range.start-1:i.length),a=new A(r?r.seq2Range.endExclusive+1:0,u?u.seq2Range.start-1:e.length);o.seq1Range.isEmpty?t[n]=un(o,i,e,l,a):o.seq2Range.isEmpty&&(t[n]=un(o.swap(),e,i,a,l).swap())}return t}s(Fn,"shiftSequenceDiffs");function un(i,e,t,n,r){let u=1;for(;i.seq1Range.start-u>=n.start&&i.seq2Range.start-u>=r.start&&t.isStronglyEqual(i.seq2Range.start-u,i.seq2Range.endExclusive-u)&&u<100;)u++;u--;let l=0;for(;i.seq1Range.start+l<n.endExclusive&&i.seq2Range.endExclusive+l<r.endExclusive&&t.isStronglyEqual(i.seq2Range.start+l,i.seq2Range.endExclusive+l)&&l<100;)l++;if(u===0&&l===0)return i;let a=0,c=-1;for(let f=-u;f<=l;f++){let m=i.seq2Range.start+f,p=i.seq2Range.endExclusive+f,d=i.seq1Range.start+f,g=e.getBoundaryScore(d)+t.getBoundaryScore(m)+t.getBoundaryScore(p);g>c&&(c=g,a=f)}return i.delta(a)}s(un,"shiftDiffToBetterPosition");function ln(i,e,t){let n=[];for(let r of t){let o=n[n.length-1];if(!o){n.push(r);continue}r.seq1Range.start-o.seq1Range.endExclusive<=2||r.seq2Range.start-o.seq2Range.endExclusive<=2?n[n.length-1]=new q(o.seq1Range.join(r.seq1Range),o.seq2Range.join(r.seq2Range)):n.push(r)}return n}s(ln,"removeShortMatches");function Tt(i,e,t,n,r=!1){let o=q.invert(t,i.length),u=[],l=new Q(0,0);function a(f,m){if(f.offset1<l.offset1||f.offset2<l.offset2)return;let p=n(i,f.offset1),d=n(e,f.offset2);if(!p||!d)return;let g=new q(p,d),x=g.intersect(m),y=x.seq1Range.length,M=x.seq2Range.length;for(;o.length>0;){let S=o[0];if(!(S.seq1Range.intersects(g.seq1Range)||S.seq2Range.intersects(g.seq2Range)))break;let b=n(i,S.seq1Range.start),T=n(e,S.seq2Range.start),_=new q(b,T),L=_.intersect(S);if(y+=L.seq1Range.length,M+=L.seq2Range.length,g=g.join(_),g.seq1Range.endExclusive>=S.seq1Range.endExclusive)o.shift();else break}(r&&y+M<g.seq1Range.length+g.seq2Range.length||y+M<(g.seq1Range.length+g.seq2Range.length)*2/3)&&u.push(g),l=g.getEndExclusives()}for(s(a,"scanWord");o.length>0;){let f=o.shift();f.seq1Range.isEmpty||(a(f.getStarts(),f),a(f.getEndExclusives().delta(-1),f))}return Bn(t,u)}s(Tt,"extendDiffsToEntireWordIfAppropriate");function Bn(i,e){let t=[];for(;i.length>0||e.length>0;){let n=i[0],r=e[0],o;n&&(!r||n.seq1Range.start<r.seq1Range.start)?o=i.shift():o=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}s(Bn,"mergeSequenceDiffs");function an(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let l=[n[0]];for(let a=1;a<n.length;a++){let m=function(d,g){let x=new A(f.seq1Range.endExclusive,c.seq1Range.start);return i.getText(x).replace(/\s/g,"").length<=4&&(d.seq1Range.length+d.seq2Range.length>5||g.seq1Range.length+g.seq2Range.length>5)};var u=m;s(m,"shouldJoinDiffs");let c=n[a],f=l[l.length-1];m(f,c)?(o=!0,l[l.length-1]=l[l.length-1].join(c)):l.push(c)}n=l}while(r++<10&&o);return n}s(an,"removeVeryShortMatchingLinesBetweenDiffs");function cn(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let a=[n[0]];for(let c=1;c<n.length;c++){let p=function(g,x){let y=new A(m.seq1Range.endExclusive,f.seq1Range.start);if(i.countLinesIn(y)>5||y.length>500)return!1;let S=i.getText(y).trim();if(S.length>20||S.split(/\r\n|\r|\n/).length>1)return!1;let P=i.countLinesIn(g.seq1Range),b=g.seq1Range.length,T=e.countLinesIn(g.seq2Range),_=g.seq2Range.length,L=i.countLinesIn(x.seq1Range),B=x.seq1Range.length,W=e.countLinesIn(x.seq2Range),De=x.seq2Range.length,Se=2*40+50;function _e(xt){return Math.min(xt,Se)}return s(_e,"cap"),Math.pow(Math.pow(_e(P*40+b),1.5)+Math.pow(_e(T*40+_),1.5),1.5)+Math.pow(Math.pow(_e(L*40+B),1.5)+Math.pow(_e(W*40+De),1.5),1.5)>(Se**1.5)**1.5*1.3};var l=p;s(p,"shouldJoinDiffs");let f=n[c],m=a[a.length-1];p(m,f)?(o=!0,a[a.length-1]=a[a.length-1].join(f)):a.push(f)}n=a}while(r++<10&&o);let u=[];return wt(n,(a,c,f)=>{let m=c;function p(S){return S.length>0&&S.trim().length<=3&&c.seq1Range.length+c.seq2Range.length>100}s(p,"shouldMarkAsChanged");let d=i.extendToFullLines(c.seq1Range),g=i.getText(new A(d.start,c.seq1Range.start));p(g)&&(m=m.deltaStart(-g.length));let x=i.getText(new A(c.seq1Range.endExclusive,d.endExclusive));p(x)&&(m=m.deltaEnd(x.length));let y=q.fromOffsetPairs(a?a.getEndExclusives():Q.zero,f?f.getStarts():Q.max),M=m.intersect(y);u.length>0&&M.getStarts().equals(u[u.length-1].getEndExclusives())?u[u.length-1]=u[u.length-1].join(M):u.push(M)}),u}s(cn,"removeVeryShortMatchingTextBetweenLongDiffs");var Ne=class{constructor(e,t){this.trimmedHash=e;this.lines=t}static{s(this,"LineSequence")}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let t=e===0?0:fn(this.lines[e-1]),n=e===this.lines.length?0:fn(this.lines[e]);return 1e3-(t+n)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
38
|
+
`).length>=15&&Mn(m,d=>d.length>=2)>=2}),u=qn(i,u),u}s(sn,"computeMovedLines");function Mn(i,e){let t=0;for(let n of i)e(n)&&t++;return t}s(Mn,"countWhere");function Un(i,e,t,n){let r=[],o=i.filter(a=>a.modified.isEmpty&&a.original.length>=3).map(a=>new ye(a.original,e,a)),u=new Set(i.filter(a=>a.original.isEmpty&&a.modified.length>=3).map(a=>new ye(a.modified,t,a))),l=new Set;for(let a of o){let c=-1,f;for(let m of u){let p=a.computeSimilarity(m);p>c&&(c=p,f=m)}if(c>.9&&f&&(u.delete(f),r.push(new H(a.range,f.range)),l.add(a.source),l.add(f.source)),!n.isValid())return{moves:r,excludedChanges:l}}return{moves:r,excludedChanges:l}}s(Un,"computeMovesFromSimpleDeletionsToSimpleInsertions");function kn(i,e,t,n,r,o){let u=[],l=new ae;for(let p of i)for(let d=p.original.startLineNumber;d<p.original.endLineNumberExclusive-2;d++){let g=`${e[d-1]}:${e[d+1-1]}:${e[d+2-1]}`;l.add(g,{range:new O(d,d+3)})}let a=[];i.sort(te(p=>p.modified.startLineNumber,ne));for(let p of i){let d=[];for(let g=p.modified.startLineNumber;g<p.modified.endLineNumberExclusive-2;g++){let x=`${t[g-1]}:${t[g+1-1]}:${t[g+2-1]}`,y=new O(g,g+3),M=[];l.forEach(x,({range:S})=>{for(let b of d)if(b.originalLineRange.endLineNumberExclusive+1===S.endLineNumberExclusive&&b.modifiedLineRange.endLineNumberExclusive+1===y.endLineNumberExclusive){b.originalLineRange=new O(b.originalLineRange.startLineNumber,S.endLineNumberExclusive),b.modifiedLineRange=new O(b.modifiedLineRange.startLineNumber,y.endLineNumberExclusive),M.push(b);return}let P={modifiedLineRange:y,originalLineRange:S};a.push(P),M.push(P)}),d=M}if(!o.isValid())return[]}a.sort(St(te(p=>p.modifiedLineRange.length,ne)));let c=new re,f=new re;for(let p of a){let d=p.modifiedLineRange.startLineNumber-p.originalLineRange.startLineNumber,g=c.subtractFrom(p.modifiedLineRange),x=f.subtractFrom(p.originalLineRange).getWithDelta(d),y=g.getIntersection(x);for(let M of y.ranges){if(M.length<3)continue;let S=M,P=M.delta(-d);u.push(new H(P,S)),c.addRange(S),f.addRange(P)}}u.sort(te(p=>p.original.startLineNumber,ne));let m=new ve(i);for(let p=0;p<u.length;p++){let d=u[p],g=m.findLastMonotonous(_=>_.original.startLineNumber<=d.original.startLineNumber),x=J(i,_=>_.modified.startLineNumber<=d.modified.startLineNumber),y=Math.max(d.original.startLineNumber-g.original.startLineNumber,d.modified.startLineNumber-x.modified.startLineNumber),M=m.findLastMonotonous(_=>_.original.startLineNumber<d.original.endLineNumberExclusive),S=J(i,_=>_.modified.startLineNumber<d.modified.endLineNumberExclusive),P=Math.max(M.original.endLineNumberExclusive-d.original.endLineNumberExclusive,S.modified.endLineNumberExclusive-d.modified.endLineNumberExclusive),b;for(b=0;b<y;b++){let _=d.original.startLineNumber-b-1,L=d.modified.startLineNumber-b-1;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}b>0&&(f.addRange(new O(d.original.startLineNumber-b,d.original.startLineNumber)),c.addRange(new O(d.modified.startLineNumber-b,d.modified.startLineNumber)));let T;for(T=0;T<P;T++){let _=d.original.endLineNumberExclusive+T,L=d.modified.endLineNumberExclusive+T;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}T>0&&(f.addRange(new O(d.original.endLineNumberExclusive,d.original.endLineNumberExclusive+T)),c.addRange(new O(d.modified.endLineNumberExclusive,d.modified.endLineNumberExclusive+T))),(b>0||T>0)&&(u[p]=new H(new O(d.original.startLineNumber-b,d.original.endLineNumberExclusive+T),new O(d.modified.startLineNumber-b,d.modified.endLineNumberExclusive+T)))}return u}s(kn,"computeUnchangedMoves");function rn(i,e,t){if(i.trim()===e.trim())return!0;if(i.length>300&&e.length>300)return!1;let r=new he().compute(new ee([i],new w(1,1,1,i.length),!1),new ee([e],new w(1,1,1,e.length),!1),t),o=0,u=q.invert(r.diffs,i.length);for(let f of u)f.seq1Range.forEach(m=>{we(i.charCodeAt(m))||o++});function l(f){let m=0;for(let p=0;p<i.length;p++)we(f.charCodeAt(p))||m++;return m}s(l,"countNonWsChars");let a=l(i.length>e.length?i:e);return o/a>.6&&a>10}s(rn,"areLinesSimilar");function Pn(i){if(i.length===0)return i;i.sort(te(t=>t.original.startLineNumber,ne));let e=[i[0]];for(let t=1;t<i.length;t++){let n=e[e.length-1],r=i[t],o=r.original.startLineNumber-n.original.endLineNumberExclusive,u=r.modified.startLineNumber-n.modified.endLineNumberExclusive;if(o>=0&&u>=0&&o+u<=2){e[e.length-1]=n.join(r);continue}e.push(r)}return e}s(Pn,"joinCloseConsecutiveMoves");function qn(i,e){let t=new ve(i);return e=e.filter(n=>{let r=t.findLastMonotonous(l=>l.original.startLineNumber<n.original.endLineNumberExclusive)||new H(new O(1,1),new O(1,1)),o=J(i,l=>l.modified.startLineNumber<n.modified.endLineNumberExclusive);return r!==o}),e}s(qn,"removeMovesInSameDiff");function ht(i,e,t){let n=t;return n=on(i,e,n),n=on(i,e,n),n=Fn(i,e,n),n}s(ht,"optimizeSequenceDiffs");function on(i,e,t){if(t.length===0)return t;let n=[];n.push(t[0]);for(let o=1;o<t.length;o++){let u=n[n.length-1],l=t[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=l.seq1Range.start-u.seq1Range.endExclusive,c;for(c=1;c<=a&&!(i.getElement(l.seq1Range.start-c)!==i.getElement(l.seq1Range.endExclusive-c)||e.getElement(l.seq2Range.start-c)!==e.getElement(l.seq2Range.endExclusive-c));c++);if(c--,c===a){n[n.length-1]=new q(new A(u.seq1Range.start,l.seq1Range.endExclusive-a),new A(u.seq2Range.start,l.seq2Range.endExclusive-a));continue}l=l.delta(-c)}n.push(l)}let r=[];for(let o=0;o<n.length-1;o++){let u=n[o+1],l=n[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=u.seq1Range.start-l.seq1Range.endExclusive,c;for(c=0;c<a&&!(!i.isStronglyEqual(l.seq1Range.start+c,l.seq1Range.endExclusive+c)||!e.isStronglyEqual(l.seq2Range.start+c,l.seq2Range.endExclusive+c));c++);if(c===a){n[o+1]=new q(new A(l.seq1Range.start+a,u.seq1Range.endExclusive),new A(l.seq2Range.start+a,u.seq2Range.endExclusive));continue}c>0&&(l=l.delta(c))}r.push(l)}return n.length>0&&r.push(n[n.length-1]),r}s(on,"joinSequenceDiffsByShifting");function Fn(i,e,t){if(!i.getBoundaryScore||!e.getBoundaryScore)return t;for(let n=0;n<t.length;n++){let r=n>0?t[n-1]:void 0,o=t[n],u=n+1<t.length?t[n+1]:void 0,l=new A(r?r.seq1Range.endExclusive+1:0,u?u.seq1Range.start-1:i.length),a=new A(r?r.seq2Range.endExclusive+1:0,u?u.seq2Range.start-1:e.length);o.seq1Range.isEmpty?t[n]=un(o,i,e,l,a):o.seq2Range.isEmpty&&(t[n]=un(o.swap(),e,i,a,l).swap())}return t}s(Fn,"shiftSequenceDiffs");function un(i,e,t,n,r){let u=1;for(;i.seq1Range.start-u>=n.start&&i.seq2Range.start-u>=r.start&&t.isStronglyEqual(i.seq2Range.start-u,i.seq2Range.endExclusive-u)&&u<100;)u++;u--;let l=0;for(;i.seq1Range.start+l<n.endExclusive&&i.seq2Range.endExclusive+l<r.endExclusive&&t.isStronglyEqual(i.seq2Range.start+l,i.seq2Range.endExclusive+l)&&l<100;)l++;if(u===0&&l===0)return i;let a=0,c=-1;for(let f=-u;f<=l;f++){let m=i.seq2Range.start+f,p=i.seq2Range.endExclusive+f,d=i.seq1Range.start+f,g=e.getBoundaryScore(d)+t.getBoundaryScore(m)+t.getBoundaryScore(p);g>c&&(c=g,a=f)}return i.delta(a)}s(un,"shiftDiffToBetterPosition");function ln(i,e,t){let n=[];for(let r of t){let o=n[n.length-1];if(!o){n.push(r);continue}r.seq1Range.start-o.seq1Range.endExclusive<=2||r.seq2Range.start-o.seq2Range.endExclusive<=2?n[n.length-1]=new q(o.seq1Range.join(r.seq1Range),o.seq2Range.join(r.seq2Range)):n.push(r)}return n}s(ln,"removeShortMatches");function Tt(i,e,t,n,r=!1){let o=q.invert(t,i.length),u=[],l=new Q(0,0);function a(f,m){if(f.offset1<l.offset1||f.offset2<l.offset2)return;let p=n(i,f.offset1),d=n(e,f.offset2);if(!p||!d)return;let g=new q(p,d),x=g.intersect(m),y=x.seq1Range.length,M=x.seq2Range.length;for(;o.length>0;){let S=o[0];if(!(S.seq1Range.intersects(g.seq1Range)||S.seq2Range.intersects(g.seq2Range)))break;let b=n(i,S.seq1Range.start),T=n(e,S.seq2Range.start),_=new q(b,T),L=_.intersect(S);if(y+=L.seq1Range.length,M+=L.seq2Range.length,g=g.join(_),g.seq1Range.endExclusive>=S.seq1Range.endExclusive)o.shift();else break}(r&&y+M<g.seq1Range.length+g.seq2Range.length||y+M<(g.seq1Range.length+g.seq2Range.length)*2/3)&&u.push(g),l=g.getEndExclusives()}for(s(a,"scanWord");o.length>0;){let f=o.shift();f.seq1Range.isEmpty||(a(f.getStarts(),f),a(f.getEndExclusives().delta(-1),f))}return Bn(t,u)}s(Tt,"extendDiffsToEntireWordIfAppropriate");function Bn(i,e){let t=[];for(;i.length>0||e.length>0;){let n=i[0],r=e[0],o;n&&(!r||n.seq1Range.start<r.seq1Range.start)?o=i.shift():o=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}s(Bn,"mergeSequenceDiffs");function an(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let l=[n[0]];for(let a=1;a<n.length;a++){let m=function(d,g){let x=new A(f.seq1Range.endExclusive,c.seq1Range.start);return i.getText(x).replace(/\s/g,"").length<=4&&(d.seq1Range.length+d.seq2Range.length>5||g.seq1Range.length+g.seq2Range.length>5)};var u=m;s(m,"shouldJoinDiffs");let c=n[a],f=l[l.length-1];m(f,c)?(o=!0,l[l.length-1]=l[l.length-1].join(c)):l.push(c)}n=l}while(r++<10&&o);return n}s(an,"removeVeryShortMatchingLinesBetweenDiffs");function cn(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let a=[n[0]];for(let c=1;c<n.length;c++){let p=function(g,x){let y=new A(m.seq1Range.endExclusive,f.seq1Range.start);if(i.countLinesIn(y)>5||y.length>500)return!1;let S=i.getText(y).trim();if(S.length>20||S.split(/\r\n|\r|\n/).length>1)return!1;let P=i.countLinesIn(g.seq1Range),b=g.seq1Range.length,T=e.countLinesIn(g.seq2Range),_=g.seq2Range.length,L=i.countLinesIn(x.seq1Range),B=x.seq1Range.length,W=e.countLinesIn(x.seq2Range),De=x.seq2Range.length,Se=130;function _e(xt){return Math.min(xt,Se)}return s(_e,"cap"),Math.pow(Math.pow(_e(P*40+b),1.5)+Math.pow(_e(T*40+_),1.5),1.5)+Math.pow(Math.pow(_e(L*40+B),1.5)+Math.pow(_e(W*40+De),1.5),1.5)>(Se**1.5)**1.5*1.3};var l=p;s(p,"shouldJoinDiffs");let f=n[c],m=a[a.length-1];p(m,f)?(o=!0,a[a.length-1]=a[a.length-1].join(f)):a.push(f)}n=a}while(r++<10&&o);let u=[];return wt(n,(a,c,f)=>{let m=c;function p(S){return S.length>0&&S.trim().length<=3&&c.seq1Range.length+c.seq2Range.length>100}s(p,"shouldMarkAsChanged");let d=i.extendToFullLines(c.seq1Range),g=i.getText(new A(d.start,c.seq1Range.start));p(g)&&(m=m.deltaStart(-g.length));let x=i.getText(new A(c.seq1Range.endExclusive,d.endExclusive));p(x)&&(m=m.deltaEnd(x.length));let y=q.fromOffsetPairs(a?a.getEndExclusives():Q.zero,f?f.getStarts():Q.max),M=m.intersect(y);u.length>0&&M.getStarts().equals(u[u.length-1].getEndExclusives())?u[u.length-1]=u[u.length-1].join(M):u.push(M)}),u}s(cn,"removeVeryShortMatchingTextBetweenLongDiffs");var Ne=class{constructor(e,t){this.trimmedHash=e;this.lines=t}static{s(this,"LineSequence")}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let t=e===0?0:fn(this.lines[e-1]),n=e===this.lines.length?0:fn(this.lines[e]);return 1e3-(t+n)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
|
|
39
39
|
`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function fn(i){let e=0;for(;e<i.length&&(i.charCodeAt(e)===32||i.charCodeAt(e)===9);)e++;return e}s(fn,"getIndentation");var $e=class{constructor(){this.dynamicProgrammingDiffing=new je;this.myersDiffingAlgorithm=new he}static{s(this,"DefaultLinesDiffComputer")}computeDiff(e,t,n){if(e.length<=1&&ke(e,t,(T,_)=>T===_))return new de([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new de([new ge(new O(1,e.length+1),new O(1,t.length+1),[new z(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let r=n.maxComputationTimeMs===0?C.instance:new We(n.maxComputationTimeMs),o=!n.ignoreTrimWhitespace,u=new Map;function l(T){let _=u.get(T);return _===void 0&&(_=u.size,u.set(T,_)),_}s(l,"getOrCreateHash");let a=e.map(T=>l(T.trim())),c=t.map(T=>l(T.trim())),f=new Ne(a,e),m=new Ne(c,t),p=f.length+m.length<1700?this.dynamicProgrammingDiffing.compute(f,m,r,(T,_)=>e[T]===t[_]?t[_].length===0?.1:1+Math.log(1+t[_].length):.99):this.myersDiffingAlgorithm.compute(f,m,r),d=p.diffs,g=p.hitTimeout;d=ht(f,m,d),d=an(f,m,d);let x=[],y=s(T=>{if(o)for(let _=0;_<T;_++){let L=M+_,B=S+_;if(e[L]!==t[B]){let W=this.refineDiff(e,t,new q(new A(L,L+1),new A(B,B+1)),r,o,n);for(let De of W.mappings)x.push(De);W.hitTimeout&&(g=!0)}}},"scanForWhitespaceChanges"),M=0,S=0;for(let T of d){ie(()=>T.seq1Range.start-M===T.seq2Range.start-S);let _=T.seq1Range.start-M;y(_),M=T.seq1Range.endExclusive,S=T.seq2Range.endExclusive;let L=this.refineDiff(e,t,T,r,o,n);L.hitTimeout&&(g=!0);for(let B of L.mappings)x.push(B)}y(e.length-M);let P=pt(x,new se(e),new se(t)),b=[];return n.computeMoves&&(b=this.computeMoves(P,e,t,a,c,r,o,n)),ie(()=>{function T(L,B){if(L.lineNumber<1||L.lineNumber>B.length)return!1;let W=B[L.lineNumber-1];return!(L.column<1||L.column>W.length+1)}s(T,"validatePosition");function _(L,B){return!(L.startLineNumber<1||L.startLineNumber>B.length+1||L.endLineNumberExclusive<1||L.endLineNumberExclusive>B.length+1)}s(_,"validateRange");for(let L of P){if(!L.innerChanges)return!1;for(let B of L.innerChanges)if(!(T(B.modifiedRange.getStartPosition(),t)&&T(B.modifiedRange.getEndPosition(),t)&&T(B.originalRange.getStartPosition(),e)&&T(B.originalRange.getEndPosition(),e)))return!1;if(!_(L.modified,t)||!_(L.original,e))return!1}return!0}),new de(P,b,g)}computeMoves(e,t,n,r,o,u,l,a){return sn(e,t,n,r,o,u).map(m=>{let p=this.refineDiff(t,n,new q(m.original.toOffsetRange(),m.modified.toOffsetRange()),u,l,a),d=pt(p.mappings,new se(t),new se(n),!0);return new ze(m,d)})}refineDiff(e,t,n,r,o,u){let a=Kn(n).toRangeMapping2(e,t),c=new ee(e,a.originalRange,o),f=new ee(t,a.modifiedRange,o),m=c.length+f.length<500?this.dynamicProgrammingDiffing.compute(c,f,r):this.myersDiffingAlgorithm.compute(c,f,r),p=!1,d=m.diffs;p&&q.assertSorted(d),d=ht(c,f,d),p&&q.assertSorted(d),d=Tt(c,f,d,(x,y)=>x.findWordContaining(y)),p&&q.assertSorted(d),u.extendToSubwords&&(d=Tt(c,f,d,(x,y)=>x.findSubWordContaining(y),!0),p&&q.assertSorted(d)),d=ln(c,f,d),p&&q.assertSorted(d),d=cn(c,f,d),p&&q.assertSorted(d);let g=d.map(x=>new z(c.translateRange(x.seq1Range),f.translateRange(x.seq2Range)));return p&&z.assertSorted(g),{mappings:g,hitTimeout:m.hitTimeout}}};function Kn(i){return new H(new O(i.seq1Range.start+1,i.seq1Range.endExclusive+1),new O(i.seq2Range.start+1,i.seq2Range.endExclusive+1))}s(Kn,"toLineRangeMapping");async function Vn(i,e,t){return mn(i,e,t)}s(Vn,"computeDiff");function mn(i,e,t){let n=i.split(/\r\n|\r|\n/),r=e.split(/\r\n|\r|\n/),u=new $e().computeDiff(n,r,t),l=u.changes.length>0?!1:i===e;function a(c){return c.map(f=>[f.original.startLineNumber,f.original.endLineNumberExclusive,f.modified.startLineNumber,f.modified.endLineNumberExclusive,f.innerChanges?.map(m=>[m.originalRange.startLineNumber,m.originalRange.startColumn,m.originalRange.endLineNumber,m.originalRange.endColumn,m.modifiedRange.startLineNumber,m.modifiedRange.startColumn,m.modifiedRange.endLineNumber,m.modifiedRange.endColumn])])}return s(a,"getLineChanges"),{identical:l,quitEarly:u.hitTimeout,changes:a(u.changes),moves:u.moves.map(c=>[c.lineRangeMapping.original.startLineNumber,c.lineRangeMapping.original.endLineNumberExclusive,c.lineRangeMapping.modified.startLineNumber,c.lineRangeMapping.modified.endLineNumberExclusive,a(c.changes)])}}s(mn,"computeDiffSync");function zn(){let i=dn.parentPort;if(!i)throw new Error("This module should only be used in a worker thread.");i.on("message",async({id:e,fn:t,args:n})=>{try{let r=await _t[t](...n);i.postMessage({id:e,res:r})}catch(r){i.postMessage({id:e,err:r})}})}s(zn,"main");zn();
|
|
40
40
|
//!!! DO NOT modify, this file was COPIED from 'microsoft/vscode'
|
|
41
41
|
//# sourceMappingURL=diffWorker.js.map
|