MCPcopy Index your code
hub / github.com/codeaashu/claude-code / segmentTextByHighlights

Function segmentTextByHighlights

src/utils/textHighlighting.ts:27–60  ·  view source on GitHub ↗
(
  text: string,
  highlights: TextHighlight[],
)

Source from the content-addressed store, hash-verified

25}
26
27export function segmentTextByHighlights(
28 text: string,
29 highlights: TextHighlight[],
30): TextSegment[] {
31 if (highlights.length === 0) {
32 return [{ text, start: 0 }]
33 }
34
35 const sortedHighlights = [...highlights].sort((a, b) => {
36 if (a.start !== b.start) return a.start - b.start
37 return b.priority - a.priority
38 })
39
40 const resolvedHighlights: TextHighlight[] = []
41 const usedRanges: Array<{ start: number; end: number }> = []
42
43 for (const highlight of sortedHighlights) {
44 if (highlight.start === highlight.end) continue
45
46 const overlaps = usedRanges.some(
47 range =>
48 (highlight.start >= range.start && highlight.start < range.end) ||
49 (highlight.end > range.start && highlight.end <= range.end) ||
50 (highlight.start <= range.start && highlight.end >= range.end),
51 )
52
53 if (!overlaps) {
54 resolvedHighlights.push(highlight)
55 usedRanges.push({ start: highlight.start, end: highlight.end })
56 }
57 }
58
59 return new HighlightSegmenter(text).segment(resolvedHighlights)
60}
61
62class HighlightSegmenter {
63 private readonly tokens: Token[]

Callers 1

HighlightedInputFunction · 0.85

Calls 2

segmentMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected