diff --git a/src/SlashCommands.js b/src/SlashCommands.js index 5711d14ffce..9c9573ae21a 100644 --- a/src/SlashCommands.js +++ b/src/SlashCommands.js @@ -26,11 +26,12 @@ import SettingsStore, {SettingLevel} from './settings/SettingsStore'; class Command { - constructor({name, args='', description, runFn}) { + constructor({name, args='', description, runFn, hideCompletionAfterSpace=false}) { this.command = '/' + name; this.args = args; this.description = description; this.runFn = runFn; + this.hideCompletionAfterSpace = hideCompletionAfterSpace; } getCommand() { @@ -78,6 +79,7 @@ export const CommandMap = { }); return success(); }, + hideCompletionAfterSpace: true, }), nick: new Command({ @@ -466,6 +468,7 @@ export const CommandMap = { name: 'me', args: '', description: _td('Displays action'), + hideCompletionAfterSpace: true, }), }; /* eslint-enable babel/no-invalid-this */ diff --git a/src/autocomplete/CommandProvider.js b/src/autocomplete/CommandProvider.js index 850d97ab712..9ebac031a88 100644 --- a/src/autocomplete/CommandProvider.js +++ b/src/autocomplete/CommandProvider.js @@ -47,6 +47,8 @@ export default class CommandProvider extends AutocompleteProvider { // The input looks like a command with arguments, perform exact match const name = command[1].substr(1); // strip leading `/` if (CommandMap[name]) { + // some commands, namely `me` and `ddg` don't suit having the usage shown whilst typing their arguments + if (!CommandMap[name].hideCompletionAfterSpace) return []; matches = [CommandMap[name]]; } } else {