From 97d3854e4b72c2368b11f12f07cd986421c0501d Mon Sep 17 00:00:00 2001 From: CalamitousFelicitousness Date: Thu, 26 Mar 2026 01:56:57 +0000 Subject: [PATCH] feat(autocomplete): add setting to toggle comma separator between tags --- javascript/autocomplete.js | 8 +++++--- modules/ui_definitions.py | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/javascript/autocomplete.js b/javascript/autocomplete.js index 2f8d5cade..0794b57ca 100644 --- a/javascript/autocomplete.js +++ b/javascript/autocomplete.js @@ -215,9 +215,11 @@ function insertTag(textarea, tagName) { const before = value.slice(0, info.start); const after = value.slice(info.end); // Build insertion: tag + separator - const needsCommaBefore = before.length > 0 && !before.trimEnd().endsWith(',') && before.trimEnd().length > 0; - const prefix = needsCommaBefore ? ', ' : ''; - let suffix = ', '; + const useComma = window.opts?.autocomplete_append_comma ?? true; + const sep = useComma ? ',' : ''; + const needsSepBefore = before.length > 0 && before.trimEnd().length > 0 && !before.trimEnd().endsWith(','); + const prefix = needsSepBefore ? `${sep} ` : ''; + let suffix = `${sep} `; if (after.length > 0 && after.trimStart().startsWith(',')) suffix = ' '; const insertion = `${prefix}${tagName}${suffix}`; textarea.value = before.trimEnd() + (before.trimEnd().length > 0 ? ' ' : '') + insertion + after.trimStart(); diff --git a/modules/ui_definitions.py b/modules/ui_definitions.py index f563edd69..bc05e4a73 100644 --- a/modules/ui_definitions.py +++ b/modules/ui_definitions.py @@ -665,6 +665,7 @@ def create_settings(cmd_opts): "autocomplete_enabled": OptionInfo([], "Enabled tag autocomplete files", gr.Dropdown, lambda: {"multiselect": True, "choices": list_autocomplete_names()}), "autocomplete_min_chars": OptionInfo(3, "Minimum characters before autocomplete triggers", gr.Slider, {"minimum": 2, "maximum": 6, "step": 1}), "autocomplete_replace_underscores": OptionInfo(True, "Replace underscores with spaces in autocomplete results"), + "autocomplete_append_comma": OptionInfo(True, "Automatically add comma separator between tags"), })) # --- Extensions ---