mirror of https://github.com/vector-im/riot-web
once command has a space, strict match instead of fuzzy match
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
(cherry picked from commit a852033
)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
parent
107802fa29
commit
9de6bf4f5a
|
@ -41,8 +41,26 @@ export default class CommandProvider extends AutocompleteProvider {
|
|||
const {command, range} = this.getCurrentCommand(query, selection);
|
||||
if (!command) return [];
|
||||
|
||||
// if the query is just `/` (and the user hit TAB or waits), show them all COMMANDS otherwise FuzzyMatch them
|
||||
const matches = query === '/' ? COMMANDS : this.matcher.match(command[1]);
|
||||
let matches;
|
||||
if (command[0] !== command[1]) {
|
||||
// The input looks like a command with arguments, perform exact match
|
||||
const match = COMMANDS.find((o) => o.command === command[1]);
|
||||
if (match) {
|
||||
matches = [match];
|
||||
}
|
||||
}
|
||||
|
||||
// If we don't yet have matches
|
||||
if (!matches) {
|
||||
if (query === '/') {
|
||||
// If they have just entered `/` show everything
|
||||
matches = COMMANDS;
|
||||
} else {
|
||||
// otherwise fuzzy match against all of the fields
|
||||
matches = this.matcher.match(command[1]);
|
||||
}
|
||||
}
|
||||
|
||||
return matches.map((result) => ({
|
||||
// If the command is the same as the one they entered, we don't want to discard their arguments
|
||||
completion: result.command === command[1] ? command[0] : (result.command + ' '),
|
||||
|
|
Loading…
Reference in New Issue