turbo-editors/turbo-golopublic Fork 0
49c12f54ef399972152fccd592ae27e94977f9b5
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.

install-goloscript.md · 100 lines · 5.7 KBmarkdown Blame HistoryRaw
📦 Turbo Golo d710c1b k33g yesterday1# Installer GoloScript
2
3Ce guide montre comment mettre `golo` — et, si vous les voulez, `gogolo` et `wagolo` — sur une machine, et comment vérifier que Turbo Golo le trouve. Il suppose que vous avez déjà Turbo Golo, ou êtes sur le point de l'avoir — voir [installer l'éditeur](install.md) pour cela.
4
5**L'éditeur marche sans rien de tout cela.** L'édition, la coloration, les thèmes, les snippets et les fenêtres de terminal tournent tous sans aucun interpréteur. Ce qui en a besoin : la complétion, les marques d'erreur dans la gouttière, et chaque commande du menu Golo.
6
7## Quel binaire il vous faut
8
9GoloScript en livre trois, sous une seule version :
10
11| Binaire | À quoi il sert | Il lui faut aussi |
12| --- | --- | --- |
13| `golo` | L'interpréteur : exécute les scripts, et est aussi le REPL, le débogueur, le lanceur de tests et **le serveur de langage** | rien |
14| `gogolo` | Compile un script en exécutable natif, via Go | l'outillage Go |
15| `wagolo` | Compile un script en WebAssembly, via Go et TinyGo | TinyGo, et `wasm-tools` pour la cible `wasip2` |
16
17L'éditeur a besoin de `golo` et de rien d'autre. `gogolo` et `wagolo` sont ce que lancent les entrées **Build native** et **Build wasm** du menu Golo ; sans eux ces deux entrées répondent `command not found` et le reste du menu n'est pas affecté.
18
19## Installer une release
20
21Des binaires précompilés pour macOS (Intel et Apple Silicon), Linux (amd64, arm64, 386) et Windows (amd64, arm64, 386) sont sur la [page des releases](https://codeberg.org/TypeUnsafe/golo-script/releases). Chacun est un fichier :
22
23```bash
24chmod +x golo-<version>-<plateforme>
25sudo mv golo-<version>-<plateforme> /usr/local/bin/golo
26golo --version
27```
28
29Sur macOS un téléchargement non signé est mis en quarantaine jusqu'à ce que vous en décidiez autrement, dans **Réglages Système ▸ Confidentialité et sécurité** ou avec `xattr -d com.apple.quarantine golo-<version>-<plateforme>`.
30
31Répétez pour `gogolo` et `wagolo` si vous voulez les compilateurs.
32
33## Ou construire depuis les sources
34
35Cela donne les trois d'un coup, dans `/usr/local/bin`. Il faut Go ; `wagolo` se construit sans TinyGo mais ne peut rien compiler tant que TinyGo n'est pas installé.
36
37```bash
38git clone https://codeberg.org/TypeUnsafe/golo-script.git && cd golo-script
39./install.sh
40```
41
42L'installeur de Turbo Golo fera exactement cela si on le lui demande :
43
44```bash
45scripts/install.sh --with-server
46```
47
48Il clone GoloScript dans un répertoire temporaire et lance son `install.sh`, qui demande `sudo` quand il copie dans `/usr/local/bin`.
49
50## Vérifier
51
52```bash
53golo --version
54```
55
56```
57v0.1.1 | dev.20260802.🤓
58```
59
60Et le serveur de langage en particulier — c'est l'interpréteur, c'est donc une sous-commande plutôt qu'un second binaire :
61
62```bash
63golo lsp </dev/null
64```
65
66Il ne lit rien, voit la fin de son entrée, et se termine proprement. Un `golo` qui imprime son usage ou démarre un REPL ici est un autre programme du même nom.
67
68## Vérifier que l'éditeur le trouve
69
70Ouvrez n'importe quel fichier `.golo` et lisez l'extrémité droite de la barre d'état :
71
72```
73 F1 Describe F2 Save F3 Open F6 Window F10 Menu 1:1 LSP: ready
74```
75
76`LSP: ready` signifie que le serveur a démarré. `LSP: no golo — see https://codeberg.org/TypeUnsafe/golo-script/releases` signifie qu'il n'a pas été trouvé, et le message dit où l'obtenir.
77
78**Turbo Golo regarde à deux endroits, dans l'ordre** : votre `PATH`, puis `/usr/local/bin`. Le second est là où écrit l'installeur de GoloScript, et il est fouillé même quand il n'est pas sur le `PATH` — un shell lancé par un lanceur de bureau, par exemple — pour que le cas qui ressemble sinon à un serveur cassé fonctionne.
79
80## Variantes
81
82- **Vous installez les binaires ailleurs.** Mettez ce répertoire sur le `PATH` ; l'éditeur n'a aucune variable d'environnement nommant un autre endroit où regarder. Un lien symbolique dans `/usr/local/bin` marche aussi.
83- **Vous avez déjà `golo` mais pas de complétion.** Lancez `golo lsp </dev/null` et assurez-vous qu'il se termine sans bruit. Puis lisez la barre d'état — `Run ▸ Language server status` montre le chemin que l'éditeur a trouvé et si le serveur a répondu à sa poignée de main.
84- **Vous voulez mettre à jour.** Remplacez le binaire — un téléchargement de release ou `./install.sh` à nouveau après un `git pull`. Redémarrez l'éditeur : il démarre un serveur par session et ne remarque pas un nouveau binaire avant.
85- **Vous installez pour la CI, ou dans une image.** GoloScript publie une image basée sur `scratch` qui ne contient que l'interpréteur : `docker run --rm -v "$PWD:/app" -w /app k33g/gololang:<tag> /golo ./main.golo`. L'éditeur ne peut pas utiliser un serveur dans un conteneur, c'est donc pour exécuter des scripts, pas pour la complétion.
86- **Vous voulez être sûr que l'éditeur ne le trouve pas simplement sur le `PATH`.** Lancez-le avec un environnement réduit — `env PATH=/usr/bin:/bin turbo-golo main.golo` — et la barre d'état doit toujours dire `LSP: ready`, depuis `/usr/local/bin`.
87
88## À quoi sert chaque binaire, vu de l'éditeur
89
90| Binaire | Ce que l'éditeur en fait |
91| --- | --- |
92| `golo` | `golo lsp` — la complétion, le survol, les définitions, les symboles du fichier et les marques d'erreur ; et les entrées **Run**, **Test**, **Test one**, **Debug**, **REPL** et **New script** du menu Golo |
93| `gogolo` | L'entrée **Build native** |
94| `wagolo` | L'entrée **Build wasm** |
95
96## Voir aussi
97
98- [Activer la complétion](enable-completion.md) — que faire quand le serveur est installé et ne dit toujours rien
99- [Lancer des commandes Golo depuis l'éditeur](run-golo-commands.md) — le menu Golo
100- [Coloration et complétion](../explanation/colouring-and-completion.md) — pourquoi l'interpréteur est le serveur