From 8fd8aa121a440eee2c7612aef43ab2426c57fef0 Mon Sep 17 00:00:00 2001 From: Ethan Mahlstedt Date: Thu, 8 May 2025 23:02:02 -0700 Subject: [PATCH] Files marked unsaved when not edited - Prettier Run - Added test to .gitignore - Fix bug --- .gitignore | 3 +- front/editor/editor.js | 76 +++++++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index 76add87..b584e3a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -dist \ No newline at end of file +dist +test \ No newline at end of file diff --git a/front/editor/editor.js b/front/editor/editor.js index f2ff25e..04a93f6 100644 --- a/front/editor/editor.js +++ b/front/editor/editor.js @@ -65,6 +65,7 @@ OpenedFiles.NEWCOLUMN("fileDivId"); OpenedFiles.NEWCOLUMN("savedScroll"); OpenedFiles.NEWCOLUMN("savedCursor"); OpenedFiles.NEWCOLUMN("savedFile"); +OpenedFiles.NEWCOLUMN("usesCRLF"); /////////////////////////////////////////////////////////////// // Control Variables @@ -123,7 +124,11 @@ function openFile(file, callback) { newFileDiv(file); - let fileData = fs.readFileSync(file, { encoding: "utf-8" }); + const fileData = fs.readFileSync(file, { encoding: "utf-8" }); + const usesCRLF = /\r\n/.test(fileData); + + fileFMT.SET("usesCRLF", usesCRLF); + console.log(fileData); fileFMT.SET("data", fileData); fileFMT.SET("savedFile", fileData); @@ -161,8 +166,23 @@ async function closeFile(file) { let savedData; savedData = await fs.readFileSync(file, { encoding: "utf-8" }); + const data = OpenedFiles.READ( + OpenedFiles.FINDQUICKINDEX("fileLink", file), + "data" + ); + + const usesCRLF = OpenedFiles.READ( + OpenedFiles.FINDQUICKINDEX("fileLink", file), + "usesCRLF" + ); + + const normalized = usesCRLF + ? data.replace(/(? { - fs.writeFileSync( - file, - OpenedFiles.READ( - OpenedFiles.FINDQUICKINDEX("fileLink", file), - "data" - ), - { options: "utf-8" } - ); + fs.writeFileSync(file, normalized, { options: "utf-8" }); OpenedFiles.DELETE(OpenedFiles.FINDQUICKINDEX("fileLink", file)); div.remove(); saveDialog.remove(); @@ -437,14 +450,21 @@ const saveButton = document.getElementById("SaveBtn"); function saveFile() { if (currentFile === null) return; - fs.writeFileSync( - currentFile, - OpenedFiles.READ( - OpenedFiles.FINDQUICKINDEX("fileLink", currentFile), - "data" - ), - { options: "utf-8" } + const data = OpenedFiles.READ( + OpenedFiles.FINDQUICKINDEX("fileLink", currentFile), + "data" + ); + + const usesCRLF = OpenedFiles.READ( + OpenedFiles.FINDQUICKINDEX("fileLink", currentFile), + "usesCRLF" ); + + const normalized = usesCRLF + ? data.replace(/(? { filedata = fs.readFileSync(args.preset, { encoding: "utf-8" }); } - let ans = 0; - fs.writeFileSync(`${args.dir}\\${args.name}`, filedata); - if (ans == 0) { - openFile(`${args.dir}\\${args.name}`, () => { - loadFileIntoEditor(`${args.dir}\\${args.name}`); - }); - document.getElementById("filenameField").value = ""; - dir = null; - document.getElementById("fileDirLbl").innerHTML = "No folder selected"; - document.getElementById("presetPicker").value = "none"; - document.getElementById("newFileDialog").close(); - } else { - alert("Error in file creation"); - } + openFile(`${args.dir}\\${args.name}`, () => { + loadFileIntoEditor(`${args.dir}\\${args.name}`); + }); + document.getElementById("filenameField").value = ""; + dir = null; + document.getElementById("fileDirLbl").innerHTML = "No folder selected"; + document.getElementById("presetPicker").value = "none"; + document.getElementById("newFileDialog").close(); } });