From 1bd08a42b47f4d89dd95f796af6a5caddb9e1731 Mon Sep 17 00:00:00 2001 From: Dominique Hazael-Massieux Date: Mon, 2 Sep 2024 17:46:25 +0200 Subject: [PATCH] Improve diff of IDL fragments remove syntax highlight when diffing --- amendments.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/amendments.js b/amendments.js index 4968da9f6..5dcdbf12e 100644 --- a/amendments.js +++ b/amendments.js @@ -162,6 +162,11 @@ async function listAmendments(config, _, {showError}) { } } +const makeIdlDiffable = pre => { + pre.querySelector(".idlHeader").remove(); + pre.textContent = pre.textContent ; +}; + async function showAmendments(config, _, {showError}) { for (let section of Object.keys(amendments)) { const target = document.getElementById(section); @@ -226,6 +231,12 @@ async function showAmendments(config, _, {showError}) { containerNew.querySelectorAll(".removeOnSave").forEach(el => el.remove()); const container = document.getElementById(section); container.innerHTML = ""; + // Use text-only content for pre - syntax highlights + // messes it up otherwise + if (containerNew.matches("pre.idl")) makeIdlDiffable(containerNew); + containerNew.querySelectorAll("pre.idl").forEach(makeIdlDiffable); + if (containerOld.matches("pre.idl")) makeIdlDiffable(containerOld); + containerOld.querySelectorAll("pre.idl").forEach(makeIdlDiffable); await differ.diff(container, containerOld, containerNew); container.parentNode.insertBefore(wrapper, container); } else if (amendments[section][0].difftype === "append") {