-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
40 lines (35 loc) · 1.4 KB
/
Copy pathscript.js
File metadata and controls
40 lines (35 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const editor = document.getElementById('editor');
const formatSelect = document.getElementById('formatSelect');
// Load file & Drag & Drop
function loadFile(event) {
const file = event.target.files[0] || (event.dataTransfer && event.dataTransfer.files[0]);
if (!file) return;
const reader = new FileReader();
reader.onload = (e) => editor.value = e.target.result;
reader.readAsText(file);
}
editor.addEventListener('dragover', (e) => { e.preventDefault(); editor.style.borderColor = "#ff00cc"; });
editor.addEventListener('dragleave', () => { editor.style.borderColor = "rgba(255, 255, 255, 0.2)"; });
editor.addEventListener('drop', (e) => { e.preventDefault(); loadFile(e); });
// Format using Prettier
async function formatCode() {
try {
const formatted = await prettier.format(editor.value, {
parser: formatSelect.value,
plugins: prettierPlugins
});
editor.value = formatted;
} catch (e) { alert("Formatting failed: Please check your syntax."); }
}
// Download & Copy
function downloadCode() {
const blob = new Blob([editor.value], {type: 'text/plain'});
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'formatted_code.txt';
a.click();
}
function copyToClipboard() {
navigator.clipboard.writeText(editor.value);
alert("Copied to clipboard!");
}