MCPcopy
hub / github.com/chenglou/pretext / computeOffsetFromCursor

Function computeOffsetFromCursor

pages/probe.ts:548–560  ·  view source on GitHub ↗
(prepared: PreparedTextWithSegments, cursor: { segmentIndex: number, graphemeIndex: number })

Source from the content-addressed store, hash-verified

546}
547
548function computeOffsetFromCursor(prepared: PreparedTextWithSegments, cursor: { segmentIndex: number, graphemeIndex: number }): number {
549 let offset = 0
550 for (let i = 0; i < cursor.segmentIndex; i++) offset += prepared.segments[i]!.length
551 if (cursor.graphemeIndex === 0 || cursor.segmentIndex >= prepared.segments.length) return offset
552
553 let graphemeIndex = 0
554 for (const grapheme of graphemeSegmenter.segment(prepared.segments[cursor.segmentIndex]!)) {
555 if (graphemeIndex >= cursor.graphemeIndex) break
556 offset += grapheme.segment.length
557 graphemeIndex++
558 }
559 return offset
560}
561
562function classifyBreakMismatch(contentWidth: number, ours: ProbeLine | undefined, browser: ProbeLine | undefined): string {
563 if (!ours || !browser) return 'line-count mismatch after an earlier break shift'

Callers 1

getPublicLinesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…