mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-29 08:58:53 -03:00
fix(autocomplete): make accept key behavior configurable (#863)
This commit is contained in:
@@ -16,6 +16,12 @@ const PROMPT_TAG_AUTOCOMPLETE_DEFAULT = true;
|
||||
const AUTOCOMPLETE_APPEND_COMMA_SETTING_ID = "loramanager.autocomplete_append_comma";
|
||||
const AUTOCOMPLETE_APPEND_COMMA_DEFAULT = true;
|
||||
|
||||
const AUTOCOMPLETE_ACCEPT_KEY_SETTING_ID = "loramanager.autocomplete_accept_key";
|
||||
const AUTOCOMPLETE_ACCEPT_KEY_DEFAULT = "both";
|
||||
const AUTOCOMPLETE_ACCEPT_KEY_OPTION_BOTH = "Tab or Enter";
|
||||
const AUTOCOMPLETE_ACCEPT_KEY_OPTION_TAB_ONLY = "Tab only";
|
||||
const AUTOCOMPLETE_ACCEPT_KEY_OPTION_ENTER_ONLY = "Enter only";
|
||||
|
||||
const TAG_SPACE_REPLACEMENT_SETTING_ID = "loramanager.tag_space_replacement";
|
||||
const TAG_SPACE_REPLACEMENT_DEFAULT = false;
|
||||
|
||||
@@ -186,6 +192,41 @@ const getAutocompleteAppendCommaPreference = (() => {
|
||||
};
|
||||
})();
|
||||
|
||||
const getAutocompleteAcceptKeyPreference = (() => {
|
||||
let settingsUnavailableLogged = false;
|
||||
|
||||
return () => {
|
||||
const settingManager = app?.extensionManager?.setting;
|
||||
if (!settingManager || typeof settingManager.get !== "function") {
|
||||
if (!settingsUnavailableLogged) {
|
||||
console.warn("LoRA Manager: settings API unavailable, using default autocomplete accept key setting.");
|
||||
settingsUnavailableLogged = true;
|
||||
}
|
||||
return AUTOCOMPLETE_ACCEPT_KEY_DEFAULT;
|
||||
}
|
||||
|
||||
try {
|
||||
const value = settingManager.get(AUTOCOMPLETE_ACCEPT_KEY_SETTING_ID);
|
||||
if (value === AUTOCOMPLETE_ACCEPT_KEY_OPTION_TAB_ONLY) {
|
||||
return "tab_only";
|
||||
}
|
||||
if (value === AUTOCOMPLETE_ACCEPT_KEY_OPTION_ENTER_ONLY) {
|
||||
return "enter_only";
|
||||
}
|
||||
if (value === AUTOCOMPLETE_ACCEPT_KEY_OPTION_BOTH || value == null) {
|
||||
return AUTOCOMPLETE_ACCEPT_KEY_DEFAULT;
|
||||
}
|
||||
return value;
|
||||
} catch (error) {
|
||||
if (!settingsUnavailableLogged) {
|
||||
console.warn("LoRA Manager: unable to read autocomplete accept key setting, using default.", error);
|
||||
settingsUnavailableLogged = true;
|
||||
}
|
||||
return AUTOCOMPLETE_ACCEPT_KEY_DEFAULT;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
const getTagSpaceReplacementPreference = (() => {
|
||||
let settingsUnavailableLogged = false;
|
||||
|
||||
@@ -332,7 +373,20 @@ app.registerExtension({
|
||||
type: "boolean",
|
||||
defaultValue: AUTOCOMPLETE_APPEND_COMMA_DEFAULT,
|
||||
tooltip: "When enabled, accepted autocomplete suggestions append ', ' to the inserted text.",
|
||||
category: ["LoRA Manager", "Autocomplete", "Behavior"],
|
||||
category: ["LoRA Manager", "Autocomplete", "Append comma"],
|
||||
},
|
||||
{
|
||||
id: AUTOCOMPLETE_ACCEPT_KEY_SETTING_ID,
|
||||
name: "Autocomplete accept key",
|
||||
type: "combo",
|
||||
options: [
|
||||
AUTOCOMPLETE_ACCEPT_KEY_OPTION_BOTH,
|
||||
AUTOCOMPLETE_ACCEPT_KEY_OPTION_TAB_ONLY,
|
||||
AUTOCOMPLETE_ACCEPT_KEY_OPTION_ENTER_ONLY,
|
||||
],
|
||||
defaultValue: AUTOCOMPLETE_ACCEPT_KEY_OPTION_BOTH,
|
||||
tooltip: "Choose which key accepts the selected autocomplete suggestion. Keys not selected here keep their normal textarea behavior.",
|
||||
category: ["LoRA Manager", "Autocomplete", "Accept key"],
|
||||
},
|
||||
{
|
||||
id: TAG_SPACE_REPLACEMENT_SETTING_ID,
|
||||
@@ -451,6 +505,7 @@ export {
|
||||
getWheelSensitivity,
|
||||
getAutoPathCorrectionPreference,
|
||||
getAutocompleteAppendCommaPreference,
|
||||
getAutocompleteAcceptKeyPreference,
|
||||
getPromptTagAutocompletePreference,
|
||||
getTagSpaceReplacementPreference,
|
||||
getUsageStatisticsPreference,
|
||||
|
||||
Reference in New Issue
Block a user