271
272
public removeTokens(startDeltaLine: number, startChar: number, endDeltaLine: number, endChar: number): number {
274
>
const tokenCount = this._tokenCount;
275
>
let newTokenCount = 0;
276
>
let hasDeletedTokens = false;
277
>
let firstDeltaLine = 0;
278
>
for (let i = 0; i < tokenCount; i++) {
279
>
const srcOffset = 4 * i;
280
>
const tokenDeltaLine = tokens[srcOffset];
281
>
const tokenStartCharacter = tokens[srcOffset + 1];
282
>
const tokenEndCharacter = tokens[srcOffset + 2];
283
>
const tokenMetadata = tokens[srcOffset + 3];
284
>
285
>
if (
286
>
(tokenDeltaLine > startDeltaLine || (tokenDeltaLine === startDeltaLine && tokenEndCharacter >= startChar))
287
>
&& (tokenDeltaLine < endDeltaLine || (tokenDeltaLine === endDeltaLine && tokenStartCharacter <= endChar))
288
>
) {
289
hasDeletedTokens = true;
291
if (newTokenCount === 0) {
292
firstDeltaLine = tokenDeltaLine;