Code Beautifier đa ngôn ngữ
try { let formatted = ''; if (lang === 'html') { formatted = prettier.format(code, { parser: "html", plugins: prettierPlugins, }); } else if (lang === 'css') { formatted = prettier.format(code, { parser: "css", plugins: prettierPlugins, }); } else if (lang === 'js') { formatted = prettier.format(code, { parser: "babel", plugins: prettierPlugins, semi: true, singleQuote: true, }); } else if (lang === 'php') { // PHP rất khó format client-side, làm thủ công thụt đầu dòng cơ bản: formatted = phpBasicBeautify(code); } else { formatted = code; }
document.getElementById('code').value = formatted; } catch (error) { alert('Lỗi khi làm đẹp code: ' + error.message); } }
function phpBasicBeautify(code) { // Thụt đầu dòng cơ bản cho PHP (chỉ ví dụ) const lines = code.split('\n'); let indentLevel = 0; const indentSize = 2; const indentChar = ' '; const increaseIndentKeywords = ['{', '(', '[']; const decreaseIndentKeywords = ['}', ')', ']'];
return lines.map(line => { let trimmed = line.trim();
// Giảm indent nếu bắt đầu bằng dấu đóng if (decreaseIndentKeywords.some(k => trimmed.startsWith(k))) { indentLevel = Math.max(indentLevel - 1, 0); }
const indentedLine = indentChar.repeat(indentLevel * indentSize) + trimmed;
// Tăng indent nếu kết thúc bằng dấu mở if (increaseIndentKeywords.some(k => trimmed.endsWith(k))) { indentLevel++; }
return indentedLine; }).join('\n'); }