Пример #1
0
public class CommandLineMode extends AbstractCommandLineMode {

  // Cache this to prevent construction overhead.
  private static EvaluatorMapping coreCommands = CommandLineParser.coreCommands();

  public static final String DISPLAY_NAME = "COMMAND LINE";
  public static final String NAME = "command mode";
  public static final String KEYMAP_NAME = "Command Mode Keymap";
  private EvaluatorMapping commands;

  public CommandLineMode(EditorAdaptor editorAdaptor) {
    super(editorAdaptor);
    commands = new EvaluatorMapping();
    commands.addAll(coreCommands);
  }

  @Override
  public CommandLineParser createParser() {
    return new CommandLineParser(editorAdaptor, commands);
  }

  @Override
  protected String getPrompt() {
    return ":";
  }

  public String getName() {
    return NAME;
  }

  public String getDisplayName() {
    return DISPLAY_NAME;
  }

  public KeyMap resolveKeyMap(KeyMapProvider provider) {
    return provider.getKeyMap(KEYMAP_NAME);
  }

  public boolean addCommand(String commandName, Command command, boolean overwrite) {
    if (overwrite || !commands.contains(commandName)) {
      commands.add(commandName, command);
      return true;
    }
    return false;
  }
}