Merge branch 't3chguy/improve_command_provider' into develop

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/autocomplete/CommandProvider.js
This commit is contained in:
Michael Telatynski 2018-06-18 19:32:54 +01:00
commit e79738de8a
No known key found for this signature in database
GPG key ID: 3F879DA5AD802A5E

View file

@ -41,8 +41,26 @@ export default class CommandProvider extends AutocompleteProvider {
const {command, range} = this.getCurrentCommand(query, selection); const {command, range} = this.getCurrentCommand(query, selection);
if (!command) return []; if (!command) return [];
// if the query is just `/` (and the user hit TAB or waits), show them all COMMANDS otherwise FuzzyMatch them let matches;
const matches = query === '/' ? COMMANDS : this.matcher.match(command[1]); 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) => ({ return matches.map((result) => ({
// If the command is the same as the one they entered, we don't want to discard their arguments // 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 + ' '), completion: result.command === command[1] ? command[0] : (result.command + ' '),