turbo-editors/turbo-golopublic Fork 0
b2b07ec0fe8e8d54362f3a1a6f1b089e9198ebd8
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-golo.git
git clone ssh://git@rickub.com/turbo-editors/turbo-golo.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

navigate-code.md · 76 lines · 4.3 KBmarkdown Blame HistoryRaw
📦 Turbo Golo d710c1b k33g yesterday1# How to move around a file
2
3This guide shows how to get to the piece of code you are looking for. It assumes you have a file open.
4
5## Find text
6
7Press **Ctrl-F**, type what you are looking for, and press **Enter**. The first match is selected.
8
9- **F7** — next match
10- **Shift-F7** — previous match
11
12The search **wraps round**: pressing F7 repeatedly cycles through every match rather than stopping at the bottom of the file. Case is ignored unless you tick `Case sensitive` in the Find box.
13
14## Jump to a line number
15
16Press **Ctrl-G**, type the number, press **Enter**. Lines count from one, as they do in the interpreter's error messages.
17
18## Jump to a declaration
19
20Put the cursor on a name and press **F12**. Turbo Golo asks `golo lsp` where it is declared and goes to that line. When there is more than one declaration, it offers the list.
21
22With this server the answer is **file-local**: a top-level function or a union declared in the file you are in. A function imported from a module of your own on disk is not resolved, and a name from an embedded module such as `gololang.Errors` has no file to jump to.
23
24That is one of the questions the **Code** menu puts to the server, and `golo lsp` answers all of them but one: references (`Shift-F12`) and implementations within the file, a symbol anywhere in the project (`Ctrl-T`), and the file's own outline with **Symbol in file**, which is the way to see everything a file declares. Type definitions alone report nothing found. See [How to ask what the code means](ask-about-code.md).
25
26If the file is already open, its window comes forward instead of opening a second one.
27
28> This needs `golo` on your `PATH`. See [How to enable Golo completion](enable-completion.md).
29
30## Select and edit whole lines
31
32| | |
33| --- | --- |
34| **Double-click a word** | Select it. Typing then replaces it; holding the button after the second click extends the selection from the start of the word. |
35| **Ctrl-N** | Open a blank line **above** the cursor. The cursor stays on its own text, now one line lower — room made over what you are looking at. |
36| **Ctrl-Y** | Delete the line the cursor is on. The cursor keeps its line number, so holding the key deletes a run of lines. |
37
38Both are Turbo C's keys. `Ctrl-Y` is why **redo is `Ctrl-R`** and no longer `Ctrl-Y`: between the editor looking like Turbo C and a habit picked up here, the first won. `Ctrl-Shift-Z` was not available to move redo to — a terminal delivers it as plain `Ctrl-Z`.
39
40A double-click away from a word — on a space or a bracket — moves the cursor and selects nothing. Editors disagree about what a run of punctuation means, and nothing is at least an answer you can predict.
41
42## Move by word, line and file
43
44| | |
45| --- | --- |
46| **Ctrl-←** / **Ctrl-→** | Previous / next word |
47| **Home** / **End** | Start / end of the line |
48| **Ctrl-Home** / **Ctrl-End** | Start / end of the file |
49| **PgUp** / **PgDn** | One screenful |
50
51Hold **Shift** with any of these to select as you go.
52
53## Move between windows
54
55| | |
56| --- | --- |
57| **F6** | The window behind the current one |
58| **Alt-1****Alt-9** | That numbered window — the number is in its top-right corner |
59| **Alt-0** | A list of every open window |
60
61If the windows are on top of each other, `Window ▸ Tile` lays them out side by side and `Window ▸ Cascade` stacks them with every title visible.
62
63## Variants
64
65**The file is not Golo.** Everything above works except F12, which needs a language server, and the only one this editor starts is `golo lsp`, for Golo. Colouring is unaffected: the eight other languages the editor knows — TOML, YAML, Markdown, JavaScript, HTML, XML, Dockerfiles and shell — are coloured as usual; see [Languages coloured](../reference/languages.md).
66
67**You want to see where you are.** The right-hand end of the status bar always shows `line:column`, counting from one.
68
69**You resized the terminal.** Windows follow it: one that filled the terminal still fills it, and one you had moved keeps its corner where you put it. Nothing is ever left larger than the terminal.
70
71**The line is longer than the window.** The view scrolls sideways to follow the cursor; the bar along the bottom of the window shows how far along you are.
72
73## See also
74
75- Every key: [keyboard reference](../reference/keyboard.md)
76- Every menu item: [menu reference](../reference/menus.md)