summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py85
1 files changed, 60 insertions, 25 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index f4b2bf9ac..eb11926c3 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -25,6 +25,7 @@ import attr
from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
from PyQt5.QtWidgets import QApplication
+from qutebrowser.commands import runners
from qutebrowser.keyinput import modeparsers
from qutebrowser.config import config
from qutebrowser.api import cmdutils
@@ -64,34 +65,68 @@ class NotInModeError(Exception):
def init(win_id, parent):
"""Initialize the mode manager and the keyparsers for the given win_id."""
- KM = usertypes.KeyMode # noqa: N806
modeman = ModeManager(win_id, parent)
objreg.register('mode-manager', modeman, scope='window', window=win_id)
+
+ commandrunner = runners.CommandRunner(win_id)
+
keyparsers = {
- KM.normal:
- modeparsers.NormalKeyParser(win_id, modeman),
- KM.hint:
- modeparsers.HintKeyParser(win_id, modeman),
- KM.insert:
- modeparsers.PassthroughKeyParser(win_id, 'insert', modeman),
- KM.passthrough:
- modeparsers.PassthroughKeyParser(win_id, 'passthrough', modeman),
- KM.command:
- modeparsers.PassthroughKeyParser(win_id, 'command', modeman),
- KM.prompt:
- modeparsers.PassthroughKeyParser(win_id, 'prompt', modeman),
- KM.yesno:
- modeparsers.PromptKeyParser(win_id, modeman),
- KM.caret:
- modeparsers.CaretKeyParser(win_id, modeman),
- KM.set_mark:
- modeparsers.RegisterKeyParser(win_id, KM.set_mark, modeman),
- KM.jump_mark:
- modeparsers.RegisterKeyParser(win_id, KM.jump_mark, modeman),
- KM.record_macro:
- modeparsers.RegisterKeyParser(win_id, KM.record_macro, modeman),
- KM.run_macro:
- modeparsers.RegisterKeyParser(win_id, KM.run_macro, modeman),
+ usertypes.KeyMode.normal:
+ modeparsers.NormalKeyParser(win_id=win_id,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.hint:
+ modeparsers.HintKeyParser(win_id=win_id,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.insert:
+ modeparsers.PassthroughKeyParser(win_id=win_id,
+ mode='insert',
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.passthrough:
+ modeparsers.PassthroughKeyParser(win_id=win_id,
+ mode='passthrough',
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.command:
+ modeparsers.PassthroughKeyParser(win_id=win_id,
+ mode='command',
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.prompt:
+ modeparsers.PassthroughKeyParser(win_id=win_id,
+ mode='prompt',
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.yesno:
+ modeparsers.PromptKeyParser(win_id=win_id,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.caret:
+ modeparsers.CaretKeyParser(win_id=win_id,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.set_mark:
+ modeparsers.RegisterKeyParser(win_id=win_id,
+ mode=usertypes.KeyMode.set_mark,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.jump_mark:
+ modeparsers.RegisterKeyParser(win_id=win_id,
+ mode=usertypes.KeyMode.jump_mark,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.record_macro:
+ modeparsers.RegisterKeyParser(win_id=win_id,
+ mode=usertypes.KeyMode.record_macro,
+ commandrunner=commandrunner,
+ parent=modeman),
+ usertypes.KeyMode.run_macro:
+ modeparsers.RegisterKeyParser(win_id=win_id,
+ mode=usertypes.KeyMode.run_macro,
+ commandrunner=commandrunner,
+ parent=modeman),
}
objreg.register('keyparsers', keyparsers, scope='window', window=win_id)
modeman.destroyed.connect(