# HG changeset patch
# User wenzelm
# Date 1761499609 -3600
# Node ID f32e9720b31d29953aa4f4b94569bdf5a11b2831
# Parent c08765f8ceaf1c88a6daa11e486e8eb8fcb64f6a
tuned quotes: follow Isabelle majority style, instead of JS/TS;
diff -r c08765f8ceaf -r f32e9720b31d src/Tools/VSCode/extension/media/sledgehammer.js
--- a/src/Tools/VSCode/extension/media/sledgehammer.js Sun Oct 26 18:24:39 2025 +0100
+++ b/src/Tools/VSCode/extension/media/sledgehammer.js Sun Oct 26 18:26:49 2025 +0100
@@ -5,79 +5,79 @@
let history = [];
- const container = document.createElement('div');
- container.id = 'sledgehammer-container';
+ const container = document.createElement("div");
+ container.id = "sledgehammer-container";
- const top_row = document.createElement('div');
- top_row.classList.add('top-row');
+ const top_row = document.createElement("div");
+ top_row.classList.add("top-row");
- const provers_label = document.createElement('label');
- provers_label.textContent = 'Provers: ';
+ const provers_label = document.createElement("label");
+ provers_label.textContent = "Provers: ";
- const provers_input_wrapper = document.createElement('div');
- provers_input_wrapper.className = 'provers-input-wrapper';
+ const provers_input_wrapper = document.createElement("div");
+ provers_input_wrapper.className = "provers-input-wrapper";
- const provers_input = document.createElement('input');
- provers_input.type = 'text';
- provers_input.id = 'provers';
+ const provers_input = document.createElement("input");
+ provers_input.type = "text";
+ provers_input.id = "provers";
provers_input.size = 30;
- provers_input.value = '';
- provers_input.autocomplete = 'off';
+ provers_input.value = "";
+ provers_input.autocomplete = "off";
provers_input_wrapper.appendChild(provers_input);
- const chevron_button = document.createElement('button');
- chevron_button.type = 'button';
- chevron_button.className = 'provers-dropdown-toggle';
- chevron_button.setAttribute('aria-label', 'Show provers history');
+ const chevron_button = document.createElement("button");
+ chevron_button.type = "button";
+ chevron_button.className = "provers-dropdown-toggle";
+ chevron_button.setAttribute("aria-label", "Show provers history");
chevron_button.tabIndex = -1;
- chevron_button.innerHTML = '\u25bc';
+ chevron_button.innerHTML = "\u25bc";
provers_input_wrapper.appendChild(chevron_button);
provers_label.appendChild(provers_input_wrapper);
- const dropdown = document.createElement('div');
- dropdown.className = 'provers-dropdown';
+ const dropdown = document.createElement("div");
+ dropdown.className = "provers-dropdown";
provers_input_wrapper.appendChild(dropdown);
function show_dropdown() {
- dropdown.classList.add('visible');
+ dropdown.classList.add("visible");
}
function hide_dropdown() {
- dropdown.classList.remove('visible');
+ dropdown.classList.remove("visible");
}
function render_dropdown(open = false) {
- dropdown.innerHTML = '';
- const header = document.createElement('div');
- header.textContent = 'Previously entered strings:';
- header.className = 'history-header';
+ dropdown.innerHTML = "";
+ const header = document.createElement("div");
+ header.textContent = "Previously entered strings:";
+ header.className = "history-header";
dropdown.appendChild(header);
if (history.length === 0) {
- const no_entry = document.createElement('div');
- no_entry.className = 'history-header';
+ const no_entry = document.createElement("div");
+ no_entry.className = "history-header";
}
else {
history.forEach(item => {
- const row = document.createElement('div');
+ const row = document.createElement("div");
row.tabIndex = 0;
row.textContent = item;
- const delete_button = document.createElement('span');
- delete_button.textContent = '\u2716';
- delete_button.className = 'delete-btn';
- delete_button.title = 'Delete entry';
- delete_button.addEventListener('mousedown', function (ev) {
+ const delete_button = document.createElement("span");
+ delete_button.textContent = "\u2716";
+ delete_button.className = "delete-btn";
+ delete_button.title = "Delete entry";
+ delete_button.addEventListener("mousedown", function (ev) {
ev.preventDefault();
ev.stopPropagation();
history = history.filter(h => h !== item);
render_dropdown(false);
show_dropdown();
- vscode.postMessage({ command: 'delete_prover_history', entry: item });
+ vscode.postMessage({ command: "delete_prover_history", entry: item });
});
row.appendChild(delete_button);
- row.addEventListener('mousedown', function (e) {
+ row.addEventListener("mousedown", function (e) {
e.preventDefault();
provers_input.value = item;
hide_dropdown();
@@ -90,9 +90,9 @@
}
- chevron_button.addEventListener('mousedown', function (e) {
+ chevron_button.addEventListener("mousedown", function (e) {
e.preventDefault();
- if (dropdown.classList.contains('visible')) {
+ if (dropdown.classList.contains("visible")) {
hide_dropdown();
}
else {
@@ -102,20 +102,20 @@
}
});
- provers_input.addEventListener('input', () => { });
+ provers_input.addEventListener("input", () => { });
- provers_input.addEventListener('focus', function () {
+ provers_input.addEventListener("focus", function () {
render_dropdown(true);
show_dropdown();
});
- provers_input.addEventListener('blur', () => {
+ provers_input.addEventListener("blur", () => {
setTimeout(() => {
if (!dropdown.contains(document.activeElement)) hide_dropdown();
}, 150);
});
- provers_input.addEventListener('keydown', (e) => {
- if (e.key === 'ArrowDown' && dropdown.childNodes.length) {
+ provers_input.addEventListener("keydown", (e) => {
+ if (e.key === "ArrowDown" && dropdown.childNodes.length) {
dropdown.firstChild && dropdown.firstChild.focus && dropdown.firstChild.focus();
}
});
@@ -142,64 +142,64 @@
render_dropdown();
}
- const isar_label = document.createElement('label');
- const isar_checkbox = document.createElement('input');
- isar_checkbox.type = 'checkbox';
- isar_checkbox.id = 'isar';
+ const isar_label = document.createElement("label");
+ const isar_checkbox = document.createElement("input");
+ isar_checkbox.type = "checkbox";
+ isar_checkbox.id = "isar";
isar_label.appendChild(isar_checkbox);
- isar_label.appendChild(document.createTextNode(' Isar proofs'));
+ isar_label.appendChild(document.createTextNode(" Isar proofs"));
- const try0_label = document.createElement('label');
- const try0_checkbox = document.createElement('input');
- try0_checkbox.type = 'checkbox';
- try0_checkbox.id = 'try0';
+ const try0_label = document.createElement("label");
+ const try0_checkbox = document.createElement("input");
+ try0_checkbox.type = "checkbox";
+ try0_checkbox.id = "try0";
try0_checkbox.checked = true;
try0_label.appendChild(try0_checkbox);
- try0_label.appendChild(document.createTextNode(' Try methods'));
+ try0_label.appendChild(document.createTextNode(" Try methods"));
- provers_input.addEventListener('input', save_state);
- isar_checkbox.addEventListener('change', save_state);
- try0_checkbox.addEventListener('change', save_state);
- const spinner = document.createElement('div');
- spinner.id = 'sledgehammer-spinner';
+ provers_input.addEventListener("input", save_state);
+ isar_checkbox.addEventListener("change", save_state);
+ try0_checkbox.addEventListener("change", save_state);
+ const spinner = document.createElement("div");
+ spinner.id = "sledgehammer-spinner";
- const apply_button = document.createElement('button');
- apply_button.textContent = 'Apply';
- apply_button.id = 'apply-btn';
- apply_button.addEventListener('click', () => {
+ const apply_button = document.createElement("button");
+ apply_button.textContent = "Apply";
+ apply_button.id = "apply-btn";
+ apply_button.addEventListener("click", () => {
was_cancelled = false;
can_be_cancelled = true;
- result.innerHTML = '';
+ result.innerHTML = "";
add_to_history(provers_input.value);
hide_dropdown();
vscode.postMessage({
- command: 'apply',
+ command: "apply",
provers: provers_input.value,
isar: isar_checkbox.checked,
try0: try0_checkbox.checked
});
});
- const cancel_button = document.createElement('button');
- cancel_button.textContent = 'Cancel';
- cancel_button.addEventListener('click', () => {
- vscode.postMessage({ command: 'cancel' });
+ const cancel_button = document.createElement("button");
+ cancel_button.textContent = "Cancel";
+ cancel_button.addEventListener("click", () => {
+ vscode.postMessage({ command: "cancel" });
if (was_cancelled) return;
if (!can_be_cancelled) return;
was_cancelled = true;
- spinner.classList.remove('loading');
+ spinner.classList.remove("loading");
const div = document.createElement("div");
div.classList.add("interrupt");
div.textContent = "Interrupt";
result.appendChild(div);
});
- const locate_button = document.createElement('button');
- locate_button.textContent = 'Locate';
- locate_button.addEventListener('click', () => {
+ const locate_button = document.createElement("button");
+ locate_button.textContent = "Locate";
+ locate_button.addEventListener("click", () => {
vscode.postMessage({
- command: 'locate',
+ command: "locate",
provers: provers_input.value,
isar: isar_checkbox.checked,
try0: try0_checkbox.checked
@@ -215,20 +215,20 @@
top_row.appendChild(locate_button);
container.appendChild(top_row);
- const result = document.createElement('div');
- result.id = 'result';
+ const result = document.createElement("div");
+ result.id = "result";
container.appendChild(result);
document.body.appendChild(container);
render_dropdown();
- window.addEventListener('message', event => {
+ window.addEventListener("message", event => {
const message = event.data;
- if (message.command === 'status') {
- spinner.classList.toggle('loading', message.message !== "Finished");
+ if (message.command === "status") {
+ spinner.classList.toggle("loading", message.message !== "Finished");
}
- else if (message.command === 'provers') {
+ else if (message.command === "provers") {
set_history(message.history);
if (message.provers) {
provers_input.value = message.provers;
@@ -237,45 +237,45 @@
provers_input.value = message.history[0];
}
}
- else if (message.command === 'no_proof_context') {
+ else if (message.command === "no_proof_context") {
const div = document.createElement("div");
div.classList.add("interrupt");
div.textContent = "Unknown proof context";
result.appendChild(div);
}
- else if (message.command === 'no_provers') {
+ else if (message.command === "no_provers") {
const div = document.createElement("div");
div.classList.add("interrupt");
div.textContent = "No such provers";
result.appendChild(div);
}
- else if (message.command === 'result') {
+ else if (message.command === "result") {
if (was_cancelled) return;
- result.innerHTML = '';
+ result.innerHTML = "";
const parser = new DOMParser();
- const xml_doc = parser.parseFromString(`${message.content}`, 'application/xml');
- const messages = xml_doc.getElementsByTagName('writeln_message');
+ const xml_doc = parser.parseFromString(`${message.content}`, "application/xml");
+ const messages = xml_doc.getElementsByTagName("writeln_message");
for (const msg of messages) {
- const div = document.createElement('div');
+ const div = document.createElement("div");
const inner = msg.innerHTML;
- if (inner.includes(' {
if (node.nodeType === Node.TEXT_NODE) {
const text = node.textContent.trim();
if (text) {
- const span = document.createElement('span');
+ const span = document.createElement("span");
span.textContent = text;
div.appendChild(span);
}
}
- else if (node.nodeName.toLowerCase() === 'sendback') {
- const button = document.createElement('button');
+ else if (node.nodeName.toLowerCase() === "sendback") {
+ const button = document.createElement("button");
button.textContent = node.textContent.trim();
- button.addEventListener('click', () => {
+ button.addEventListener("click", () => {
vscode.postMessage({
- command: 'insert_text',
+ command: "insert_text",
provers: provers_input.value,
isar: isar_checkbox.checked,
try0: try0_checkbox.checked,
@@ -285,7 +285,7 @@
div.appendChild(button);
}
else {
- const span = document.createElement('span');
+ const span = document.createElement("span");
span.textContent = node.textContent.trim();
div.appendChild(span);
}
@@ -297,10 +297,10 @@
result.appendChild(div);
}
if (/Unknown proof context/i.test(message.content)) {
- result.classList.add('error');
+ result.classList.add("error");
}
else {
- result.classList.remove('error');
+ result.classList.remove("error");
}
can_be_cancelled = false;
}
@@ -310,7 +310,7 @@
const saved = vscode.getState();
if (saved) {
history = Array.isArray(saved.history) ? saved.history : [];
- provers_input.value = saved.provers || '';
+ provers_input.value = saved.provers || "";
isar_checkbox.checked = !!saved.isar;
try0_checkbox.checked = saved.try0 !== undefined ? saved.try0 : true;
render_dropdown(false);