enso/app/gui/docs/product/shortcuts.md
Dmitry Bushev 4b3ba78b52
Add shortcuts to start and stop the backend profiling (#8358)
close #8329

Changelog:
- add: `cmd`+`shift`+`,` and `cmd`+`shift`+`.` shortcuts to start and stop the backend profiling. Profiling data is stored on disk.
2023-11-23 15:31:17 +00:00

18 KiB

layout title category tags
developer-doc Shortcuts product
product
ui

General Assumptions

The meta key.

The cmd key was introduced to make the shortcuts consistent across platforms. It is defined as command on macOS, and as ctrl on Windows and Linux.

Keyboard-only Workflow

The GUI and all shortcuts were designed in a way to allow both efficient mouse-only as well as keyboard-only workflows. In most cases, there is a relation between mouse and keyboard shortcuts, namely, the left-mouse-button corresponds to enter. For example, stepping into a node is done by either double clicking the node, or just pressing the enter key.

Missing / not working shortcuts

Some of the shortcuts presented below are marked with the ⚠️ icon, which means, that they are planned, but not yet implemented. Feel free to contribute and help us implement them!

Shortcuts marked with the ‼️ icon should work, but are reported to be broken and require further investigation.

Graph Editor

General Shortcuts

Shortcut Action
cmd+alt+shift+t Toggle light/dark application style. Currently doesn't work properly, as the Theme Switcher is not created yet. (https://github.com/enso-org/ide/issues/795)
ctrl+` Show Code Editor. Please note that the Code Editor implementation is in a very early stage and you should not use it. Even just openning it can cause errors in the IDE. Do not try using the graph editor while having the code editor tab openned.
cmd+o Open project
cmd+s Save module
cmd+shift+r Restore module from last save
cmd+z Undo last action
cmd+y or cmd + shift + z Redo last undone action
cmd+q Close the application (MacOS)
ctrl+q Close the application (Linux)
alt+F4 Close the application (MacOS, Windows, Linux)
ctrl+w Close the application (Windows, Linux)
⚠️ ctrl+p Toggle profiling mode
escape Cancel current action. For example, drop currently dragged connection.
cmd+alt+t Terminate the program execution
cmd+alt+r Re-execute the program
cmd+shift+k Switch the execution environment to Design.
cmd+shift+l Switch the execution environment to Live.
cmd+c Copy the selected nodes to the clipboard.
cmd+v Paste a node from the clipboard at the mouse cursor position.

Navigation

Shortcut Action
Drag gesture (two fingers) Pan the scene.
Pinch gesture (two fingers) Zoom the scene.
MMB drag Pan the scene.
RMB drag Zoom the scene.
LMB double press node name Step into the node.
⚠️ LMB double press background Step out of the current node.
cmd+enter Step in the last selected node.
alt+enter Step out of the current node.

Node Layout

Shortcut Action
LMB drag non-selected node name Move the node to new position (dragging do not modify selection).
LMB drag selected node name Move all selected nodes the node to new positions.

Node Selection

Shortcut Action
LMB click node name Deselect all nodes. Select the target node.
LMB click background Deselect all nodes.
⚠️ LMB drag background Select nodes using selection-box.
shift + LMB click node name Add / remove node to the selection group.
⚠️ shift + LMB drag background Add / remove nodes to the selection group.
⚠️ *-arrow Select node on the right side of the newest selected node.
⚠️ cmd + a Select all nodes.
⚠️ escape Deselect all nodes (if not in a mode, like edit mode).
shift + ctrl + LMB click node name Add node to the selection group.
⚠️ shift + ctrl + LMB drag background Add nodes to the selection group.
shift + alt + LMB click node name Remove node to the selection group.
⚠️ shift + alt + LMB drag background Remove nodes to the selection group.
shift + ctrl + alt + LMB click node name Inverse node selection.
⚠️ shift + ctrl + alt + LMB drag background Inverse nodes selection.

Node Editing

Shortcut Action
enter Open Component Browser to create a new node .
backspace or delete Remove selected nodes.
cmd+g Collapse (group) selected nodes.
cmd+LMB Start editing node expression.
cmd+enter Start editing node expression.
enter or LMB on suggestion Pick selected suggestion and commit editing.
cmd + enter Accept the current Component Browser expression input as-is
tab Pick selected suggestion and continue editing.

Visualization

Shortcut Action
space Toggle visualization visibility of the selected node.
space hold Preview visualization of the selected node (hide on release).
⚠️ space double press Toggle visualization fullscreen mode
ctrl + space Cycle visualizations of the selected node.
‼️ cmd + \ Toggle documentation view visibility

Visualizations Implementations

Shortcut Action
cmd + a Show all points if available in visualization.
cmd + z Zoom into selection if available in visualization.

Debug

Shortcut Action
ctrl + alt + , Start the language server profiling.
ctrl + alt + . Stop the language server profiling and save the collected data.
ctrl + shift + x Force reloading file in the backend. May fix some issues with synchronization if they appear.
ctrl + shift + d Toggle Debug Mode. All actions below are only possible when it is activated.
ctrl + alt + shift + i Open the developer console.
ctrl + alt + shift + r Reload the visual interface.
ctrl + alt + 0 - 10 Switch between debug rendering modes (0 is the normal mode).
ctrl + alt + ` Toggle profiling monitor (performance, memory usage, etc).
ctrl + alt + p Toggle the visibility of internal components (private API) in the component browser.
ctrl + d Send test data to the selected node.
ctrl + shift + enter Push a hardcoded breadcrumb without navigating.
ctrl + shift + arrow up Pop a breadcrumb without navigating.
cmd + i Reload visualizations. To see the effect in the currently shown visualizations, you need to switch to another and switch back.
ctrl + shift + b Toggle read-only mode.
ctrl + alt + shift + x Toggle WebGL Context loss / restoration for testing.
ctrl + shift + u Dump the suggestion database as JSON to the console. Available only in debug mode, and only if the component browser is open.