(lower: string)
| 214 | } |
| 215 | |
| 216 | private matchStrayClose(lower: string): number | 'partial' | null { |
| 217 | for (const cl of STRAY_CLOSERS) { |
| 218 | if (lower.startsWith(cl)) return cl.length; |
| 219 | } |
| 220 | return isProperPrefixOfAny(lower, STRAY_CLOSERS) ? 'partial' : null; |
| 221 | } |
| 222 | |
| 223 | /** Drop leading whitespace so a stripped leading block leaves no blank top lines. */ |
| 224 | private emit(c: string): string { |
no test coverage detected