feat(client/text): provide a way to disable slash commands

This commit is contained in:
Elian Doran 2025-09-23 20:18:02 +03:00
parent 71ce9c459e
commit 4cc55b02ab
No known key found for this signature in database
6 changed files with 11 additions and 1 deletions

View File

@ -1962,7 +1962,8 @@
"editorfeatures": { "editorfeatures": {
"title": "Features", "title": "Features",
"emoji_completion_enabled": "Enable Emoji auto-completion", "emoji_completion_enabled": "Enable Emoji auto-completion",
"note_completion_enabled": "Enable note auto-completion" "note_completion_enabled": "Enable note auto-completion",
"slash_commands_enabled": "Enable slash commands"
}, },
"table_view": { "table_view": {
"new-row": "New row", "new-row": "New row",

View File

@ -244,5 +244,9 @@ function getDisabledPlugins() {
disabledPlugins.push("EmojiMention"); disabledPlugins.push("EmojiMention");
} }
if (options.get("textNoteSlashCommandsEnabled") !== "true") {
disabledPlugins.push("SlashCommand");
}
return disabledPlugins; return disabledPlugins;
} }

View File

@ -73,6 +73,7 @@ function EditorFeatures() {
<OptionsSection title={t("editorfeatures.title")}> <OptionsSection title={t("editorfeatures.title")}>
<EditorFeature name="emoji-completion-enabled" optionName="textNoteEmojiCompletionEnabled" label={t("editorfeatures.emoji_completion_enabled")} /> <EditorFeature name="emoji-completion-enabled" optionName="textNoteEmojiCompletionEnabled" label={t("editorfeatures.emoji_completion_enabled")} />
<EditorFeature name="note-completion-enabled" optionName="textNoteCompletionEnabled" label={t("editorfeatures.note_completion_enabled")} /> <EditorFeature name="note-completion-enabled" optionName="textNoteCompletionEnabled" label={t("editorfeatures.note_completion_enabled")} />
<EditorFeature name="slash-commands-enabled" optionName="textNoteSlashCommandsEnabled" label={t("editorfeatures.slash_commands_enabled")} />
</OptionsSection> </OptionsSection>
); );
} }

View File

@ -91,6 +91,7 @@ const ALLOWED_OPTIONS = new Set<OptionNames>([
"textNoteEditorMultilineToolbar", "textNoteEditorMultilineToolbar",
"textNoteEmojiCompletionEnabled", "textNoteEmojiCompletionEnabled",
"textNoteCompletionEnabled", "textNoteCompletionEnabled",
"textNoteSlashCommandsEnabled",
"layoutOrientation", "layoutOrientation",
"backgroundEffects", "backgroundEffects",
"allowedHtmlTags", "allowedHtmlTags",

View File

@ -184,6 +184,7 @@ const defaultOptions: DefaultOption[] = [
{ name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true }, { name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true },
{ name: "textNoteEmojiCompletionEnabled", value: "true", isSynced: true }, { name: "textNoteEmojiCompletionEnabled", value: "true", isSynced: true },
{ name: "textNoteCompletionEnabled", value: "true", isSynced: true }, { name: "textNoteCompletionEnabled", value: "true", isSynced: true },
{ name: "textNoteSlashCommandsEnabled", value: "true", isSynced: true },
// HTML import configuration // HTML import configuration
{ name: "layoutOrientation", value: "vertical", isSynced: false }, { name: "layoutOrientation", value: "vertical", isSynced: false },

View File

@ -127,6 +127,8 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
textNoteEmojiCompletionEnabled: boolean; textNoteEmojiCompletionEnabled: boolean;
/** Whether keyboard auto-completion for notes is triggered when typing `@` in text notes (attribute editing is not affected). */ /** Whether keyboard auto-completion for notes is triggered when typing `@` in text notes (attribute editing is not affected). */
textNoteCompletionEnabled: boolean; textNoteCompletionEnabled: boolean;
/** Whether keyboard auto-completion for editing commands is triggered when typing `/`. */
textNoteSlashCommandsEnabled: boolean;
backgroundEffects: boolean; backgroundEffects: boolean;
// Share settings // Share settings