From 8bf30e3c42b39a43166e7022865c2c62af9eff96 Mon Sep 17 00:00:00 2001 From: Haoming Date: Wed, 18 Dec 2024 01:02:40 +0800 Subject: [PATCH] revert IIFE --- .../javascript/prompt-bracket-checker.js | 100 +++++++++--------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/extensions-builtin/prompt-bracket-checker/javascript/prompt-bracket-checker.js b/extensions-builtin/prompt-bracket-checker/javascript/prompt-bracket-checker.js index 3014424807b..67ff7fe22d2 100644 --- a/extensions-builtin/prompt-bracket-checker/javascript/prompt-bracket-checker.js +++ b/extensions-builtin/prompt-bracket-checker/javascript/prompt-bracket-checker.js @@ -3,75 +3,73 @@ // Counts open and closed brackets (round, square, curly) in the prompt and negative prompt text boxes in the txt2img and img2img tabs. // If there's a mismatch, the keyword counter turns red, and if you hover on it, a tooltip tells you what's wrong. -(function() { +function checkBrackets(textArea, counterElem) { const pairs = [ ['(', ')', 'round brackets'], ['[', ']', 'square brackets'], ['{', '}', 'curly brackets'] ]; - function checkBrackets(textArea, counterElem) { - const counts = {}; - const errors = new Set(); - let i = 0; + const counts = {}; + const errors = new Set(); + let i = 0; - while (i < textArea.value.length) { - let char = textArea.value[i]; - let escaped = false; - while (char === '\\' && i + 1 < textArea.value.length) { - escaped = !escaped; - i++; - char = textArea.value[i]; - } - - if (escaped) { - i++; - continue; - } - - for (const [open, close, label] of pairs) { - if (char === open) { - counts[label] = (counts[label] || 0) + 1; - } else if (char === close) { - counts[label] = (counts[label] || 0) - 1; - if (counts[label] < 0) { - errors.add(`Incorrect order of ${label}.`); - } - } - } + while (i < textArea.value.length) { + let char = textArea.value[i]; + let escaped = false; + while (char === '\\' && i + 1 < textArea.value.length) { + escaped = !escaped; + i++; + char = textArea.value[i]; + } + if (escaped) { i++; + continue; } for (const [open, close, label] of pairs) { - if (counts[label] == undefined) { - continue; - } - - if (counts[label] > 0) { - errors.add(`${open} ... ${close} - Detected ${counts[label]} more opening than closing ${label}.`); - } else if (counts[label] < 0) { - errors.add(`${open} ... ${close} - Detected ${-counts[label]} more closing than opening ${label}.`); + if (char === open) { + counts[label] = (counts[label] || 0) + 1; + } else if (char === close) { + counts[label] = (counts[label] || 0) - 1; + if (counts[label] < 0) { + errors.add(`Incorrect order of ${label}.`); + } } } - counterElem.title = [...errors].join('\n'); - counterElem.classList.toggle('error', errors.size !== 0); + i++; } - function setupBracketChecking(id_prompt, id_counter) { - const textarea = gradioApp().querySelector(`#${id_prompt} > label > textarea`); - const counter = gradioApp().getElementById(id_counter); + for (const [open, close, label] of pairs) { + if (counts[label] == undefined) { + continue; + } - if (textarea && counter) { - onEdit(`${id_prompt}_BracketChecking`, textarea, 400, () => checkBrackets(textarea, counter)); + if (counts[label] > 0) { + errors.add(`${open} ... ${close} - Detected ${counts[label]} more opening than closing ${label}.`); + } else if (counts[label] < 0) { + errors.add(`${open} ... ${close} - Detected ${-counts[label]} more closing than opening ${label}.`); } } - onUiLoaded(function() { - setupBracketChecking('txt2img_prompt', 'txt2img_token_counter'); - setupBracketChecking('txt2img_neg_prompt', 'txt2img_negative_token_counter'); - setupBracketChecking('img2img_prompt', 'img2img_token_counter'); - setupBracketChecking('img2img_neg_prompt', 'img2img_negative_token_counter'); - }); -})(); + counterElem.title = [...errors].join('\n'); + counterElem.classList.toggle('error', errors.size !== 0); +} + +function setupBracketChecking(id_prompt, id_counter) { + const textarea = gradioApp().querySelector(`#${id_prompt} > label > textarea`); + const counter = gradioApp().getElementById(id_counter); + + if (textarea && counter) { + onEdit(`${id_prompt}_BracketChecking`, textarea, 400, () => checkBrackets(textarea, counter)); + } +} + +onUiLoaded(function() { + setupBracketChecking('txt2img_prompt', 'txt2img_token_counter'); + setupBracketChecking('txt2img_neg_prompt', 'txt2img_negative_token_counter'); + setupBracketChecking('img2img_prompt', 'img2img_token_counter'); + setupBracketChecking('img2img_neg_prompt', 'img2img_negative_token_counter'); +});