| 📦 Turbo Golo d710c1b k33g yesterday | 1 | # Installer GoloScript |
| 2 | |
| 3 | Ce 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 | |
| 9 | GoloScript 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 | |
| 17 | L'é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 | |
| 21 | Des 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 |
| 24 | chmod +x golo-<version>-<plateforme> |
| 25 | sudo mv golo-<version>-<plateforme> /usr/local/bin/golo |
| 26 | golo --version |
| 27 | ``` |
| 28 | |
| 29 | Sur 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 | |
| 31 | Répétez pour `gogolo` et `wagolo` si vous voulez les compilateurs. |
| 32 | |
| 33 | ## Ou construire depuis les sources |
| 34 | |
| 35 | Cela 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 |
| 38 | git clone https://codeberg.org/TypeUnsafe/golo-script.git && cd golo-script |
| 39 | ./install.sh |
| 40 | ``` |
| 41 | |
| 42 | L'installeur de Turbo Golo fera exactement cela si on le lui demande : |
| 43 | |
| 44 | ```bash |
| 45 | scripts/install.sh --with-server |
| 46 | ``` |
| 47 | |
| 48 | Il 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 |
| 53 | golo --version |
| 54 | ``` |
| 55 | |
| 56 | ``` |
| 57 | v0.1.1 | dev.20260802.🤓 |
| 58 | ``` |
| 59 | |
| 60 | Et 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 |
| 63 | golo lsp </dev/null |
| 64 | ``` |
| 65 | |
| 66 | Il 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 | |
| 70 | Ouvrez 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 |