33 * Licensed under the MIT License. See License.txt in the project root for license information.
44 *--------------------------------------------------------------------------------------------*/
55
6- export interface ITextChange {
7- readonly oldPosition : number ;
8- readonly oldLength : number ;
9- readonly oldEnd : number ;
10- readonly oldText : string ;
11- readonly newPosition : number ;
12- readonly newLength : number ;
13- readonly newEnd : number ;
14- readonly newText : string ;
15- }
16-
17- export class TextChange implements ITextChange {
6+ export class TextChange {
187 public readonly oldPosition : number ;
198 public readonly oldLength : number ;
209 public readonly oldEnd : number ;
@@ -42,7 +31,7 @@ export class TextChange implements ITextChange {
4231 }
4332}
4433
45- export function compressConsecutiveTextChanges ( prevEdits : ITextChange [ ] | null , currEdits : ITextChange [ ] ) : ITextChange [ ] {
34+ export function compressConsecutiveTextChanges ( prevEdits : TextChange [ ] | null , currEdits : TextChange [ ] ) : TextChange [ ] {
4635 if ( prevEdits === null ) {
4736 return currEdits ;
4837 }
@@ -52,10 +41,10 @@ export function compressConsecutiveTextChanges(prevEdits: ITextChange[] | null,
5241
5342class TextChangeCompressor {
5443
55- private _prevEdits : ITextChange [ ] ;
56- private _currEdits : ITextChange [ ] ;
44+ private _prevEdits : TextChange [ ] ;
45+ private _currEdits : TextChange [ ] ;
5746
58- private _result : ITextChange [ ] ;
47+ private _result : TextChange [ ] ;
5948 private _resultLen : number ;
6049
6150 private _prevLen : number ;
@@ -64,7 +53,7 @@ class TextChangeCompressor {
6453 private _currLen : number ;
6554 private _currDeltaOffset : number ;
6655
67- constructor ( prevEdits : ITextChange [ ] , currEdits : ITextChange [ ] ) {
56+ constructor ( prevEdits : TextChange [ ] , currEdits : TextChange [ ] ) {
6857 this . _prevEdits = prevEdits ;
6958 this . _currEdits = currEdits ;
7059
@@ -78,7 +67,7 @@ class TextChangeCompressor {
7867 this . _currDeltaOffset = 0 ;
7968 }
8069
81- public compress ( ) : ITextChange [ ] {
70+ public compress ( ) : TextChange [ ] {
8271 let prevIndex = 0 ;
8372 let currIndex = 0 ;
8473
@@ -127,8 +116,8 @@ class TextChangeCompressor {
127116
128117 // At this point, currEdit.oldPosition === prevEdit.newPosition
129118
130- let mergePrev : ITextChange ;
131- let mergeCurr : ITextChange ;
119+ let mergePrev : TextChange ;
120+ let mergeCurr : TextChange ;
132121
133122 if ( currEdit . oldEnd === prevEdit . newEnd ) {
134123 mergePrev = prevEdit ;
@@ -164,25 +153,25 @@ class TextChangeCompressor {
164153 return cleaned ;
165154 }
166155
167- private _acceptCurr ( currEdit : ITextChange ) : void {
156+ private _acceptCurr ( currEdit : TextChange ) : void {
168157 this . _result [ this . _resultLen ++ ] = TextChangeCompressor . _rebaseCurr ( this . _prevDeltaOffset , currEdit ) ;
169158 this . _currDeltaOffset += currEdit . newLength - currEdit . oldLength ;
170159 }
171160
172- private _getCurr ( currIndex : number ) : ITextChange | null {
161+ private _getCurr ( currIndex : number ) : TextChange | null {
173162 return ( currIndex < this . _currLen ? this . _currEdits [ currIndex ] : null ) ;
174163 }
175164
176- private _acceptPrev ( prevEdit : ITextChange ) : void {
165+ private _acceptPrev ( prevEdit : TextChange ) : void {
177166 this . _result [ this . _resultLen ++ ] = TextChangeCompressor . _rebasePrev ( this . _currDeltaOffset , prevEdit ) ;
178167 this . _prevDeltaOffset += prevEdit . newLength - prevEdit . oldLength ;
179168 }
180169
181- private _getPrev ( prevIndex : number ) : ITextChange | null {
170+ private _getPrev ( prevIndex : number ) : TextChange | null {
182171 return ( prevIndex < this . _prevLen ? this . _prevEdits [ prevIndex ] : null ) ;
183172 }
184173
185- private static _rebaseCurr ( prevDeltaOffset : number , currEdit : ITextChange ) : ITextChange {
174+ private static _rebaseCurr ( prevDeltaOffset : number , currEdit : TextChange ) : TextChange {
186175 return new TextChange (
187176 currEdit . oldPosition - prevDeltaOffset ,
188177 currEdit . oldText ,
@@ -191,7 +180,7 @@ class TextChangeCompressor {
191180 ) ;
192181 }
193182
194- private static _rebasePrev ( currDeltaOffset : number , prevEdit : ITextChange ) : ITextChange {
183+ private static _rebasePrev ( currDeltaOffset : number , prevEdit : TextChange ) : TextChange {
195184 return new TextChange (
196185 prevEdit . oldPosition ,
197186 prevEdit . oldText ,
@@ -200,7 +189,7 @@ class TextChangeCompressor {
200189 ) ;
201190 }
202191
203- private static _splitPrev ( edit : ITextChange , offset : number ) : [ ITextChange , ITextChange ] {
192+ private static _splitPrev ( edit : TextChange , offset : number ) : [ TextChange , TextChange ] {
204193 const preText = edit . newText . substr ( 0 , offset ) ;
205194 const postText = edit . newText . substr ( offset ) ;
206195
@@ -220,7 +209,7 @@ class TextChangeCompressor {
220209 ] ;
221210 }
222211
223- private static _splitCurr ( edit : ITextChange , offset : number ) : [ ITextChange , ITextChange ] {
212+ private static _splitCurr ( edit : TextChange , offset : number ) : [ TextChange , TextChange ] {
224213 const preText = edit . oldText . substr ( 0 , offset ) ;
225214 const postText = edit . oldText . substr ( offset ) ;
226215
@@ -240,12 +229,12 @@ class TextChangeCompressor {
240229 ] ;
241230 }
242231
243- private static _merge ( edits : ITextChange [ ] ) : ITextChange [ ] {
232+ private static _merge ( edits : TextChange [ ] ) : TextChange [ ] {
244233 if ( edits . length === 0 ) {
245234 return edits ;
246235 }
247236
248- let result : ITextChange [ ] = [ ] , resultLen = 0 ;
237+ let result : TextChange [ ] = [ ] , resultLen = 0 ;
249238
250239 let prev = edits [ 0 ] ;
251240 for ( let i = 1 ; i < edits . length ; i ++ ) {
@@ -269,12 +258,12 @@ class TextChangeCompressor {
269258 return result ;
270259 }
271260
272- private static _removeNoOps ( edits : ITextChange [ ] ) : ITextChange [ ] {
261+ private static _removeNoOps ( edits : TextChange [ ] ) : TextChange [ ] {
273262 if ( edits . length === 0 ) {
274263 return edits ;
275264 }
276265
277- let result : ITextChange [ ] = [ ] , resultLen = 0 ;
266+ let result : TextChange [ ] = [ ] , resultLen = 0 ;
278267
279268 for ( let i = 0 ; i < edits . length ; i ++ ) {
280269 const edit = edits [ i ] ;
0 commit comments