Просмотр исходного кода

Make defaultInputHandler a const

xuty 2 лет назад
Родитель
Сommit
f71857f186
2 измененных файлов с 8 добавлено и 8 удалено
  1. 7 5
      lib/src/core/input/handler.dart
  2. 1 3
      lib/src/core/input/keytab/keytab.dart

+ 7 - 5
lib/src/core/input/handler.dart

@@ -93,21 +93,23 @@ class CascadeInputHandler implements TerminalInputHandler {
 ///
 /// See also:
 ///  * [CascadeInputHandler]
-final defaultInputHandler = CascadeInputHandler([
-  KeytabInputHandler(Keytab.defaultKeytab),
+const defaultInputHandler = CascadeInputHandler([
+  KeytabInputHandler(),
   CtrlInputHandler(),
   AltInputHandler(),
 ]);
 
 /// A [TerminalInputHandler] that translates key events according to a keytab
-/// file.
+/// file. If no keytab is provided, [Keytab.defaultKeytab] is used.
 class KeytabInputHandler implements TerminalInputHandler {
-  const KeytabInputHandler(this.keytab);
+  const KeytabInputHandler([this.keytab]);
 
-  final Keytab keytab;
+  final Keytab? keytab;
 
   @override
   String? call(TerminalKeyboardEvent event) {
+    final keytab = this.keytab ?? Keytab.defaultKeytab;
+
     final record = keytab.find(
       event.key,
       ctrl: event.ctrl,

+ 1 - 3
lib/src/core/input/keytab/keytab.dart

@@ -16,9 +16,7 @@ class Keytab {
     return parser.result;
   }
 
-  factory Keytab.defaultKeytab() {
-    return Keytab.parse(kDefaultKeytab);
-  }
+  static final defaultKeytab = Keytab.parse(kDefaultKeytab);
 
   final String? name;