Create the skeleton for a keyboard shortcut system #4849
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a keyboard shortcuts system based on the structure of the clipboard system.
Different modes can be registered by the handler. The first enabled one, in order of priority, will handle keydown events.
Technical details
shortcuts.ts: holds the store and interface.AppContext.svelte: initializesshortcutsHandlerand sets the absolute priority of modes with a list of names.TableView.svelte: instantiatesSelectModeandEditModeand passes them to theSheet.Sheet.svelte: registers the two modes and enablesSelectMode, only when it is focused.CellWrapper.svelte: enablesEditModeonly when itself is in edit mode.AppShortcutsHandler.ts: keeps tracks of modes and calls the correct one on keydown.EditMode.ts: currently empty.SelectMode.ts: calls the "Set to NULL" shortcut.setNull.ts: implements the shortcut.What's left
setNull.tsChecklist
Update index.md).developbranch of the repositoryvisible errors.
Developer Certificate of Origin
Developer Certificate of Origin