Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Normalize line endings for cross-platform file handling with CRLF/LF conversion and git configuration.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -54% | 0% |
Normalize line endings for cross-platform compatibility.
typescriptexport type LineEnding = 'lf' | 'crlf' | 'mixed'; export function detectLineEnding(content: string): LineEnding { const crlf = (content.match(/\r\n/g) || []).length; const lf = (content.match(/(?<!\r)\n/g) || []).length; if (crlf > 0 && lf > 0) return 'mixed'; if (crlf > 0) return 'crlf'; return 'lf'; } export function normalizeLineEndings(content: string, target: 'lf' | 'crlf' = 'lf'): string { const normalized = content.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); return target === 'crlf' ? normalized.replace(/\n/g, '\r\n') : normalized; } // .gitattributes content export const gitattributes = ` * text=auto eol=lf *.bat text eol=crlf *.cmd text eol=crlf *.ps1 text eol=crlf *.sh text eol=lf `;
Other measured skills in the registry, with their headline benchmark lift.