Reference: menus
Complete list of the menu bar's entries, with their shortcuts and the conditions under which they can be chosen.
An item marked needs a file is greyed out when no window is open.
The bar always holds File, Edit, Search, Run, Code, Options, Window, Snippets, Python and Help, in that order. A project's tools file can add menus of its own between Python and Help; they are listed under Project menus below.
File
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| New | F4 |
Open an empty untitled window | |
| Open… | F3 |
Open the file browser and open what is chosen | |
| Save | F2 |
yes | Write the file; asks for a name if it has none |
| Save as… | yes | Ask for a name and write to it, adopting that path | |
| Close | Ctrl-W |
yes | Close the current window, offering to save first |
| Exit | Alt-X |
Leave the editor, offering to save each modified file |
Edit
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| Undo | Ctrl-Z |
yes | Revert the last change |
| Redo | Ctrl-R |
yes | Re-apply the last undone change. Ctrl-Y used to do this; it deletes a line now, as it did in Turbo C. |
| Insert line | Ctrl-N |
yes | Open a blank line above the cursor, leaving the cursor on its own text |
| Delete line | Ctrl-Y |
yes | Remove the line the cursor is on. The cursor stays on the same line number, so holding the key deletes a run. |
| Cut | Shift-Del |
yes | Copy the selection to the clipboard and remove it |
| Copy | Ctrl-Ins |
yes | Copy the selection to the clipboard |
| Paste | Shift-Ins |
yes | Insert the clipboard, replacing the selection |
| Select all | Ctrl-A |
yes | Select the whole file |
The clipboard is shared between every window of one editor session.
Search
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| Find… | Ctrl-F |
yes | Ask for text and options, then jump to the first match |
| Find next | F7 |
yes | Jump to the next match, wrapping round the end of the file |
| Find previous | Shift-F7 |
yes | Jump to the previous match, wrapping round the start |
| Go to line… | Ctrl-G |
yes | Ask for a line number, counting from one |
Run
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| Completion | Ctrl-Space |
yes | Open the completion list at the cursor |
| Language server status | Show whether a language server is running, and what it is doing |
Code
Everything the editor asks the language server about the symbol under the cursor. Nothing here needs a selection: almost every request in the protocol takes a position rather than a range, so there is nothing extra to say by selecting first.
Its hot key is Alt-C.
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| Describe symbol | F1 |
yes | Show what the language server knows about the symbol under the cursor |
| Go to definition | F12 |
yes | Where the symbol is declared. One answer opens it; several offer the list. |
| Go to type definition | yes | Where the type of the symbol is declared, which is a different question | |
| Find implementations… | yes | What implements it: the types satisfying an interface, the impl blocks of a trait | |
| Find references… | Shift-F12 |
yes | Where it is used, counting its declaration |
| Symbol in file… | yes | The file's own outline, indented, with each symbol's kind. Choosing one goes to it. | |
| Symbol in project… | Ctrl-T |
no | Ask for a name and search the whole project |
| Problems… | no | Every problem the server has reported, for every file it has spoken about |
A list of places shows the file, the line, and the text of that line — twelve entries reading handler.go:42 say nothing about which one you want. The text comes from an open window when there is one, so a file edited and not saved is listed as it now reads.
Three answers are told apart, and the difference matters: nothing found says so in the question's own words (No references found), the server is not ready shows what it is doing instead, and one answer simply takes you there without a dialog.
Symbol in file has no shortcut on purpose. The obvious one is Ctrl-Shift-O, and a terminal cannot tell that from Ctrl-O — the shift is lost before the editor sees it.
Options
| Item | Needs a file | Effect |
|---|---|---|
| Theme… | List every loadable theme and apply the one chosen, immediately. With a project settings file present, also writes the choice into it. | |
| Line numbers | yes | Show or hide the gutter in the current window |
| Create project settings | Write .turbo-python/settings.toml with the theme in use, and open it. Greyed out once the project has one. |
|
| Project settings… | Open .turbo-python/settings.toml. Greyed out until the project has one. |
Window
| Item | Shortcut | Needs a file | Effect |
|---|---|---|---|
| Next | F6 |
yes | Bring the window behind the current one forward |
| New terminal | F8 |
no | Open a window running a shell, in the directory of the file in front |
| Project tree | F9 |
no | Open a window showing the project's files; brings the existing one forward when there is one |
| Tile | yes | Lay every window out in a grid, none overlapping | |
| Cascade | yes | Stack the windows offset, every title visible | |
| Maximise | yes | Give the current window the whole desktop, or put it back where it was if it already has it. The same toggle as the [■] box on the window's own frame. |
|
| List… | Alt-0 |
yes | List the open windows and bring the chosen one forward |
Snippets
Built from .turbo-python/snippets.toml and your own snippets file each time it opens. Its hot key is Alt-N, because Search already answers to S.
| Item | Needs a file | Effect |
|---|---|---|
| One submenu per group | Insert the chosen snippet at the cursor; the items need a file open | |
| Create snippets file | no | Write .turbo-python/snippets.toml with worked examples, then open it. Greyed out once the project has one. |
| Open snippets file | no | Open .turbo-python/snippets.toml. Greyed out until the project has one. Always the project's file, never your own. |
See Snippets.
Python
Built from .turbo-python/tools.toml each time it opens. Its hot key is Alt-P.
| Item | Effect |
|---|---|
One line per tool that names no menu |
Run that command, showing its output where the tool asked: a popup, a terminal window, or an editing window |
| Create tools file | Write .turbo-python/tools.toml with the five Python commands, then open it. Greyed out once the project has one. |
| Open tools file | Open .turbo-python/tools.toml. Greyed out until the project has one. |
See Python tools.
Project menus
Not fixed: one menu per menu name in .turbo-python/tools.toml, in the order the names first appear there, between Python and Help. A project with no tools file, or whose tools all stay in Python, has none.
| Item | Effect |
|---|---|
| One line per tool naming that menu | Run that command, showing its output where the tool asked |
Their hot keys are assigned rather than fixed, so that a name from a file can never take a letter one of the menus above already answers to. The rules are in Python tools.
Help
| Item | Effect |
|---|---|
| Keyboard | Show the keys worth knowing |
| About | Show the version, the commit and build date when the build recorded them, and the current theme. See the version number. |
Status bar
The hints along the bottom are clickable and run the same actions.
| Hint | Action |
|---|---|
F1 Describe |
Code ▸ Describe symbol |
F2 Save |
File ▸ Save |
F3 Open |
File ▸ Open… |
F6 Window |
Window ▸ Next |
F7 Next |
Search ▸ Find next |
F10 Menu |
Open the menu bar |
Alt-X Exit |
File ▸ Exit |
The right-hand end shows, in this order: the cursor as line:column, then either the first error the language server reported for this file (prefixed ⚠) or the language server's state.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
|