handleKeyEvent method

KeyEventResult handleKeyEvent(
  1. KeyEvent key
)

Implementation

KeyEventResult handleKeyEvent(KeyEvent key) {
  if (showingCompletions && key is KeyDownEvent) {
    if (key.logicalKey == LogicalKeyboardKey.arrowUp) {
      if (completionItem != 0) {
        completionItem -= 1;
      } else {
        completionItem = currentCompletions!.length - 1;
      }
      return KeyEventResult.handled;
    } else if (key.logicalKey == LogicalKeyboardKey.arrowDown) {
      if (completionItem != currentCompletions!.length - 1) {
        completionItem += 1;
      } else {
        completionItem = 0;
      }
      return KeyEventResult.handled;
    } else if (key.logicalKey == LogicalKeyboardKey.escape) {
      showingCompletions = false;
      return KeyEventResult.handled;
    } else if (key.logicalKey == LogicalKeyboardKey.enter) {
      onAcceptAndDismiss(
          currentCompletions![completionItem].substring(currentWord.length));
      return KeyEventResult.handled;
    }
    return KeyEventResult.ignored;
  } else {
    return KeyEventResult.ignored;
  }
}