| 📦 Turbo MoonBit cc1f595 k33g 13h ago | 1 | # Installer la chaîne d'outils MoonBit |
| 2 | |
| 3 | Ce guide montre comment obtenir `moon`, `moonc` et `moon-lsp` sur une machine, et comment vérifier que Turbo MoonBit les trouve. Il suppose que vous avez déjà Turbo MoonBit, ou que vous êtes sur le point de l'avoir — voir [installer l'éditeur](install.md) pour cela. |
| 4 | |
| 5 | **L'éditeur fonctionne sans rien de tout ceci.** L'édition, la coloration, les thèmes, les snippets et les fenêtres de terminal tournent sans aucune chaîne d'outils. Ce qui en a besoin, c'est la complétion, les marques d'erreur dans la gouttière, et toutes les commandes du menu MoonBit. |
| 6 | |
| 7 | ## L'installer |
| 8 | |
| 9 | Une seule commande installe toute la chaîne — le compilateur, le système de construction et le serveur de langage ensemble : |
| 10 | |
| 11 | ```bash |
| 12 | curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash |
| 13 | ``` |
| 14 | |
| 15 | Elle télécharge dans `~/.moon`, occupe quelques centaines de mégaoctets avec la bibliothèque standard compilée, et se termine par : |
| 16 | |
| 17 | ``` |
| 18 | moonbit was installed successfully to ~/.moon |
| 19 | Added "~/.moon/bin" to $PATH in "~/.bashrc" |
| 20 | ``` |
| 21 | |
| 22 | C'est cette dernière ligne qu'il faut lire deux fois. L'installeur modifie **un seul** profil de shell ; un shell déjà ouvert, et tout programme lancé depuis un lanceur de bureau, ne l'a pas lu. |
| 23 | |
| 24 | ```bash |
| 25 | source ~/.bashrc |
| 26 | ``` |
| 27 | |
| 28 | Sous Windows, lancez plutôt l'installeur PowerShell depuis https://www.moonbitlang.com/download. Tout ce qui suit s'applique tel quel une fois qu'il a terminé. |
| 29 | |
| 30 | ## Le vérifier |
| 31 | |
| 32 | ```bash |
| 33 | moon version --all |
| 34 | ``` |
| 35 | |
| 36 | Vous devriez voir trois lignes, chacune avec son chemin : |
| 37 | |
| 38 | ``` |
| 39 | moon 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moon |
| 40 | moonc v0.10.12+1634b282e (2026-09-07) ~/.moon/bin/moonc |
| 41 | moonrun 0.1.20260904 (94521db 2026-09-04) ~/.moon/bin/moonrun |
| 42 | ``` |
| 43 | |
| 44 | Le serveur de langage est un quatrième binaire dans le même dossier, et il vaut la peine d'être interrogé séparément, parce que c'est celui dont l'éditeur a besoin : |
| 45 | |
| 46 | ```bash |
| 47 | moon-lsp --version |
| 48 | ``` |
| 49 | |
| 50 | ``` |
| 51 | v0.10.12+1634b282e (2026-09-07) |
| 52 | ``` |
| 53 | |
| 54 | ## Vérifier que l'éditeur le trouve |
| 55 | |
| 56 | Ouvrez n'importe quel fichier d'un projet MoonBit et lisez l'extrémité droite de la barre d'état : |
| 57 | |
| 58 | ``` |
| 59 | F1 Describe F2 Save F3 Open F6 Window F10 Menu 1:1 LSP: ready |
| 60 | ``` |
| 61 | |
| 62 | `LSP: ready` signifie que le serveur a démarré. `LSP: no moon-lsp — curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash` signifie qu'il n'a pas été trouvé, et le message est la commande à lancer. |
| 63 | |
| 64 | **Turbo MoonBit cherche à trois endroits, dans cet ordre** : votre `PATH`, puis `$MOON_HOME/bin` si `MOON_HOME` est défini, puis `~/.moon/bin`. L'éditeur trouve donc une chaîne d'outils installée normalement même depuis un shell qui n'a jamais lu le profil que l'installeur a modifié — c'est précisément le cas qui, autrement, ressemble à un serveur en panne. |
| 65 | |
| 66 | ## Variantes |
| 67 | |
| 68 | - **Vous installez vos chaînes d'outils ailleurs.** Définissez `MOON_HOME` avant de lancer l'installeur ; il en tient compte, et l'éditeur aussi. |
| 69 | - **Vous avez déjà `moon` mais pas de complétion.** Vérifiez `moon-lsp --version` spécifiquement. Une chaîne dépaquetée à la main, ou une mise à jour partielle, peut laisser `moon` en état de marche et `moon-lsp` absent. |
| 70 | - **Vous voulez mettre à jour.** `moon upgrade` remplace la chaîne sur place ; `moon upgrade --dev` prend la version de développement. Ni l'un ni l'autre ne touche à `MOON_HOME` ni à votre `PATH`. |
| 71 | - **Vous installez pour de l'intégration continue, ou dans une image.** L'installeur est un script shell ordinaire et n'a pas d'option qui vaille la peine ; épingler une version veut dire récupérer une release depuis https://www.moonbitlang.com/download plutôt que de l'utiliser. |
| 72 | - **Vous voulez être sûr que l'éditeur ne le trouve pas simplement via le `PATH`.** Lancez-le avec un environnement réduit — `env PATH=/usr/bin:/bin turbo-moonbit main.mbt` — et la barre d'état devrait toujours dire `LSP: ready`, depuis `~/.moon/bin`. |
| 73 | |
| 74 | ## À quoi sert chaque binaire |
| 75 | |
| 76 | | Binaire | Ce que l'éditeur en fait | |
| 77 | | --- | --- | |
| 78 | | `moon-lsp` | Complétion, survol, définitions, références, symboles et marques d'erreur dans la gouttière | |
| 79 | | `moon` | Toutes les commandes du menu MoonBit — et `moon-lsp` le lance aussi, pour savoir ce que contient un projet | |
| 80 | | `moonc` | Le compilateur, appelé par `moon` | |
| 81 | | `moonrun` | Exécute la sortie WebAssembly, appelé par `moon run` | |
| 82 | |
| 83 | `moon-lsp` seul ne suffit pas : il détermine le projet en lançant `moon`, si bien qu'une machine ayant le serveur mais pas le système de construction obtient un serveur qui démarre, qui est trouvé, et qui ne sait ensuite rien d'aucun fichier. `scripts/install.sh` vérifie exactement cela et le dit. |
| 84 | |
| 85 | ## Voir aussi |
| 86 | |
| 87 | - [Activer la complétion](enable-completion.md) — que faire quand le serveur est installé et ne dit toujours rien |
| 88 | - [Lancer les commandes moon depuis l'éditeur](run-moon-commands.md) — le menu MoonBit |
| 89 | - [Coloration et complétion](../explanation/colouring-and-completion.md) — pourquoi l'éditeur a besoin d'un serveur |