Add a Command class; add Entry.getFillText()

getFillText() serves to decouple the text displayed in the auto-complete list
via getText() and the text actually filled into the box via getFillText(). This
allows us to display command + args on the list but only fill the command part.

A Command class has been added to provide some structure when extracting the
command name and args. Manually tested and it works.
This commit is contained in:
Kegan Dougal 2016-01-14 14:39:58 +00:00
parent 864d10f412
commit b67131f0c8
5 changed files with 86 additions and 49 deletions

View file

@ -28,6 +28,14 @@ class Entry {
return this.text;
}
/**
* @return {string} The text to insert into the input box. Most of the time
* this is the same as getText().
*/
getFillText() {
return this.text;
}
/**
* @return {ReactClass} Raw JSX
*/
@ -59,12 +67,17 @@ class Entry {
}
class CommandEntry extends Entry {
constructor(command) {
super(command);
constructor(cmd, cmdWithArgs) {
super(cmdWithArgs);
this.cmd = cmd;
}
getFillText() {
return this.cmd;
}
getKey() {
return this.getText();
return this.getFillText();
}
getSuffix(isFirstWord) {
@ -72,9 +85,9 @@ class CommandEntry extends Entry {
}
}
CommandEntry.fromStrings = function(commandArray) {
CommandEntry.fromCommands = function(commandArray) {
return commandArray.map(function(cmd) {
return new CommandEntry(cmd);
return new CommandEntry(cmd.getCommand(), cmd.getCommandWithArgs());
});
}