(rel: string, content: string, chunkLines = 40, overlap = 8)
| 99 | |
| 100 | /** Line-based fallback — identical semantics to the original chunkFile. */ |
| 101 | export function lineChunk(rel: string, content: string, chunkLines = 40, overlap = 8): Chunk[] { |
| 102 | const lines = content.split('\n'); |
| 103 | const out: Chunk[] = []; |
| 104 | for (let i = 0; i < lines.length; i += (chunkLines - overlap)) { |
| 105 | const start = i; |
| 106 | const end = Math.min(i + chunkLines, lines.length); |
| 107 | if (end - start < 4) continue; |
| 108 | out.push(mkChunk(rel, lines, start, end)); |
| 109 | if (end >= lines.length) break; |
| 110 | } |
| 111 | return out; |
| 112 | } |
| 113 | |
| 114 | /** |
| 115 | * Chunk a file on AST boundaries. Falls back to line chunking on any failure. |
no test coverage detected