UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 989 B
import*as Platform from"../../core/platform/platform.js";export class TextCursor{lineEndings;offsetInternal;lineNumberInternal;columnNumberInternal;constructor(n){this.lineEndings=n,this.offsetInternal=0,this.lineNumberInternal=0,this.columnNumberInternal=0}advance(n){for(this.offsetInternal=n;this.lineNumberInternal<this.lineEndings.length&&this.lineEndings[this.lineNumberInternal]<this.offsetInternal;)++this.lineNumberInternal;this.columnNumberInternal=this.lineNumberInternal?this.offsetInternal-this.lineEndings[this.lineNumberInternal-1]-1:this.offsetInternal}offset(){return this.offsetInternal}resetTo(n){this.offsetInternal=n,this.lineNumberInternal=Platform.ArrayUtilities.lowerBound(this.lineEndings,n,Platform.ArrayUtilities.DEFAULT_COMPARATOR),this.columnNumberInternal=this.lineNumberInternal?this.offsetInternal-this.lineEndings[this.lineNumberInternal-1]-1:this.offsetInternal}lineNumber(){return this.lineNumberInternal}columnNumber(){return this.columnNumberInternal}}