Fronds keybindings
This page is about how the keybinding works. To see what keys to press see fronds keys.
Modes
There are two types of modes in Fronds, input modes and editor modes.
input modes are temporary things that last while keys are held down. Currenty they start when the alt key is pressed.
Editor modes are based on what is being edited. Editor modes determine the exact implementation of bingings like "go left" (depending on what type of object is being edited) and determine what is done with typing (key presses that aren't editor commands).
How Bindings Work
First an attempt is made to map the key pressed to an action constant. This mapping is effected (only) by the input mode.
If the keypress has a mapping to an action constant then the following tables are searched (in this order) for a word to execute:
1) The global table contains the actions that cannot be overridden by editor modes, like "quit", "search", "execute input mode", etc.
2) The editor mode specific table. This implements "go left" and such in a way that works for whatever data type is being edited.
If the keypress does not map to an action constant then the constant
ed-key-other
is used, and the actual key pressed is accessible via the
last-keypress
word.
Things to be thought out more
- Dispatch of key-up events, mouse events, etc
- Mapping of key presses to text characters