turbo-editors/turbo-golopublic Fork 0
79b67fdd82d26f23a6b97e39c1f063d475cbbc49
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.

getting-started.md · 204 lines · 7.9 KBmarkdown Blame HistoryRaw
📦 Turbo Golo d710c1b k33g 22h ago1# Tutoriel : votre premier programme Golo dans Turbo Golo
2
3À la fin de ce tutoriel, vous aurez écrit, lancé et cassé un petit programme Golo sans quitter l'éditeur — et vu l'éditeur vous dire où était l'erreur.
4
5Aucune connaissance préalable de Turbo Golo n'est nécessaire. Il vous faut Go 1.26 ou plus récent pour compiler l'éditeur, et l'interpréteur `golo` pour exécuter le programme.
6
7## Prérequis
8
9Vérifiez Go :
10
11```bash
12go version
13```
14
15Vous devriez voir quelque chose comme :
16
17```
18go version go1.26.5 linux/arm64
19```
20
21Vérifiez l'interpréteur :
22
23```bash
24golo --version
25```
26
27```
28v0.1.1 | dev.20260802.🤓
29```
30
31Si la commande est introuvable, installez-le d'abord — [un téléchargement ou un script suffit](../how-to/install-goloscript.md).
32
33## Étape 1 — Installer l'éditeur
34
35```bash
36git clone https://rickub.com/turbo-editors/turbo-golo.git
37cd turbo-golo
38make install
39```
40
41L'installeur compile, installe, puis vérifie ce qu'il a installé. Les dernières lignes sont :
42
43```
44==> Checking the language server
45 ✓ golo at /usr/local/bin/golo — completion comes from `golo lsp`
46
47==> Ready
48```
49
50Nous avons maintenant une commande `turbo-golo`.
51
52## Étape 2 — Créer un dossier
53
54```bash
55mkdir /tmp/hello
56cd /tmp/hello
57```
58
59C'est là tout ce qu'il faut pour créer un projet Golo : Golo n'a pas de manifeste, un script est un fichier, et un programme est un dossier de fichiers. **Le dossier dans lequel vous démarrez l'éditeur** est celui où les commandes du menu Golo s'exécuteront, démarrez-le donc ici.
60
61## Étape 3 — Ouvrir un fichier qui n'existe pas encore
62
63```bash
64turbo-golo hello.golo
65```
66
67L'écran se remplit. En haut :
68
69```
70 File Edit Search Run Code Options Window Snippets Golo Help
71```
72
73Dix menus, et le neuvième porte le nom du langage. Au milieu, une fenêtre vide intitulée `hello.golo`. En bas, à droite, vous devriez voir :
74
75```
761:1 LSP: ready
77```
78
79`LSP: ready` signifie que `golo lsp` — l'interpréteur, en mode serveur de langage — a démarré dans ce dossier. Nous nous en servirons à l'étape 8.
80
81## Étape 4 — Écrire le programme
82
83Tapez ceci. Tapez-le exactement ; nous allons regarder les couleurs juste après.
84
85```golo
86module hello.World
87
88# Greet someone several times
89struct Greeting = { name, times }
90
91function greet = |g| {
92 foreach i in range(1, g: times() + 1) {
93 println("Hello, " + g: name() + "! (" + i + ")")
94 }
95}
96
97function main = |args| {
98 greet(Greeting("Golo", 3))
99}
100```
101
102Si une liste de complétion s'ouvre pendant que vous tapez — un `.` en demande une de lui-même, et `hello.` en est un — continuez à taper ou appuyez sur `Échap` ; `Entrée` accepterait la première entrée.
103
104Appuyez sur `F2` pour enregistrer. La barre d'état affiche `Saved hello.golo`.
105
106## Étape 5 — Lire les couleurs
107
108Regardez ce que vous venez de taper. Dans le thème par défaut `turbo-classic` :
109
110| Quoi | Couleur |
111| --- | --- |
112| `module`, `struct`, `function`, `foreach`, `in` | blanc vif, gras — mots-clés |
113| `hello.World`, `Greeting` | cyan vif — un chemin de module, et un type |
114| `greet`, là où il est déclaré comme là où il est appelé | jaune vif, gras — fonctions |
115| `range`, `println` | cyan vif, gras — des fonctions fournies par l'interpréteur |
116| `name`, `times`, `g`, `i`, `args` | jaune vif — noms ordinaires |
117| `"Hello, "`, `"! ("`, `")"`, `"Golo"` | vert — chaînes |
118| `1`, `3` | magenta — nombres |
119| `# Greet someone several times` | gris — un commentaire |
120| `\|`, `:`, `+`, `=` | blanc — opérateurs |
121
122Deux de ces lignes méritent un second regard.
123
124**`Greeting` est cyan et `greet` est jaune**, et personne n'a dit à l'éditeur lequel des deux est un type. C'est la convention de Golo qui tranche : les structs, les unions et leurs variantes sont les noms que l'on écrit avec une majuscule, une majuscule est donc colorée comme un type.
125
126**`greet` est jaune là où il est déclaré**, après `function`, bien qu'aucune parenthèse ne le suive à cet endroit. Le nom qui suit `function` est une fonction par sa position — [et c'est une règle délibérée](../explanation/colouring-and-completion.md).
127
128## Étape 6 — Donner ses outils au projet
129
130Appuyez sur `F10` pour ouvrir la barre de menus, puis sur `→` **huit fois** pour atteindre **Golo** — après Edit, Search, Run, Code, Options, Window et Snippets. Plus rapide : `Alt-G`.
131
132Le menu contient deux entrées, et une seule est disponible :
133
134```
135┌───────────────────┐
136│ Create tools file │
137│ Open tools file │ ← grisée ; il n'y a pas encore de fichier à ouvrir
138└───────────────────┘
139```
140
141Choisissez **Create tools file**.
142
143Une seconde fenêtre s'ouvre sur le fichier qui vient d'être écrit, `.turbo-golo/tools.toml`. Lisez-le si vous voulez — il explique chacune de ses clés — puis fermez-le avec `Ctrl-W`.
144
145Regardez la barre de menus : un menu **Tools** est apparu entre Golo et Help. La dernière entrée du fichier de départ nomme un menu à elle, et cette seule ligne est tout le mécanisme.
146
147Rouvrez le menu Golo. Il contient maintenant huit commandes, et les deux entrées ont échangé leurs rôles : `Create tools file` est grisée, et c'est `Open tools file` qui est choisissable.
148
149## Étape 7 — Le lancer
150
151Appuyez sur `Alt-G` et choisissez **Run**. Une boîte demande une valeur avant de lancer la commande, parce que Golo n'a pas de manifeste qui dise quel fichier est le programme :
152
153```
154┌──────────────── Run ────────────────┐
155│ script, e.g. main.golo │
156│ [ ] │
157└─────────────────────────────────────┘
158```
159
160Tapez `hello.golo` et appuyez sur `Entrée`. Une fenêtre de terminal s'ouvre et le programme s'y exécute :
161
162```
163Hello, Golo! (1)
164Hello, Golo! (2)
165Hello, Golo! (3)
166```
167
168Un terminal plutôt qu'une boîte de dialogue, parce qu'un programme qui lit le clavier doit pouvoir recevoir une réponse. Le programme est terminé, la fenêtre a donc cessé de se comporter comme un terminal et toutes les touches reviennent à l'éditeur : appuyez sur `Ctrl-W` pour la fermer.
169
170## Étape 8 — Le casser, et voir où
171
172Allez à la fin du fichier, après la dernière `}`, et ajoutez un commentaire comme un autre langage l'écrirait :
173
174```golo
175// run it
176```
177
178Appuyez sur `F2` pour enregistrer.
179
180En moins d'une seconde, deux choses se produisent. Un `×` rouge apparaît dans la gouttière, juste à gauche du numéro de cette ligne. Et la barre d'état affiche :
181
182```
183⚠ GoloScript has no '//' line comments. GoloScript comments are '#' for a single line (e.g. …
184```
185
186Personne ne l'a demandé. `golo lsp` le publie de lui-même chaque fois qu'il relit le fichier — une erreur de syntaxe aurait valu la même marque, et celle-ci est un lint que le serveur ajoute parce que c'est la première erreur que fait quiconque arrive d'un autre langage.
187
188Remplacez le `//` par `#` et enregistrez de nouveau ; la marque et le message disparaissent tous les deux.
189
190## Étape 9 — Changer de thème
191
192`F10`, puis `→` **cinq fois** pour atteindre **Options** — après Edit, Search, Run et Code. Choisissez **Theme…**.
193
194Une liste s'ouvre sur le thème dans lequel vous êtes. Appuyez sur `↓` jusqu'à `cobalt` puis `Entrée`. Tout l'écran change, en gardant la même forme.
195
196Appuyez sur `Alt-X` pour quitter. L'éditeur pose d'abord la question des fichiers non enregistrés, s'il y en a.
197
198## Et maintenant ?
199
200Vous avez écrit un programme Golo dans l'éditeur, l'avez lancé, cassé, et vu l'éditeur dire où. Pour aller plus loin :
201
202- Pour faire des choses précises → les [guides pratiques](../how-to/)
203- Pour savoir exactement ce qui est coloré et comment → [langages colorés](../reference/languages.md)
204- Pour comprendre pourquoi l'éditeur est bâti ainsi → les [explications](../explanation/)