diff --git a/src/providers/FileSystemProvider/FileSystemProvider.ts b/src/providers/FileSystemProvider/FileSystemProvider.ts index 90eb435a..3eec691d 100644 --- a/src/providers/FileSystemProvider/FileSystemProvider.ts +++ b/src/providers/FileSystemProvider/FileSystemProvider.ts @@ -70,7 +70,18 @@ export function generateFileContent( sourceContent: Uint8Array ): { content: string[]; enc: boolean; eol: vscode.EndOfLine } { const sourceLines = sourceContent.length ? new TextDecoder().decode(sourceContent).split("\n") : []; - const eol = sourceLines.length && sourceLines[0].slice(-1) == "\r" ? vscode.EndOfLine.CRLF : vscode.EndOfLine.LF; + + // Detect eol style (a return value), and if CRLF then strip the \r character from end of source lines + let eol = vscode.EndOfLine.LF; + if (sourceLines.length && sourceLines[0].slice(-1) == "\r") { + eol = vscode.EndOfLine.CRLF; + for (let i = 0; i < sourceLines.length; i++) { + if (sourceLines[i].slice(-1) == "\r") { + sourceLines[i] = sourceLines[i].slice(0, -1); + } + } + } + const fileExt = fileName.split(".").pop().toLowerCase(); const csp = fileName.startsWith("/"); if (fileExt === "cls" && !csp) {