turbo-editors/turbo-moonbitpublic Fork 0
v1.0.2
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-moonbit.git
git clone ssh://git@rickub.com/turbo-editors/turbo-moonbit.git

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

enable-completion.md · 95 lines · 5.4 KBmarkdown Blame HistoryRaw
📦 Turbo MoonBit cc1f595 k33g 13h ago1# Activer la complétion MoonBit
2
3Ce guide montre comment faire fonctionner la complétion, les descriptions de symboles et le saut à la définition. Il suppose que Turbo MoonBit est déjà installé et que vous savez ce qu'est un projet MoonBit.
4
5La complétion vient de **moon-lsp**, le serveur de langage officiel de MoonBit. Turbo MoonBit ne l'embarque pas : l'édition et la coloration fonctionnent sans lui, et seule la complétion est perdue.
6
7## 1. Installer moon-lsp
8
9```bash
10curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
11```
12
13## 2. S'assurer que Turbo MoonBit le trouve
14
15Turbo MoonBit cherche d'abord dans le `PATH`, puis dans `$GOBIN`, puis dans `$GOPATH/bin`. `go install` écrit dans le dernier, qui n'est très souvent pas dans le `PATH` — c'est pourquoi cela marche en général sans rien faire de plus. Pour vérifier :
16
17```bash
18moon-lsp version
19```
20
21Si cette commande répond « introuvable » alors que Turbo MoonBit le trouve quand même, c'est normal et sans conséquence.
22
23## 3. Ouvrir un fichier à l'intérieur d'un module
24
25```bash
26cd /chemin/vers/votre/module # le répertoire qui contient moon.mod
27turbo-moonbit main.mbt
28```
29
30Turbo MoonBit remonte l'arborescence depuis le fichier à la recherche d'un `moon.mod` et démarre moon-lsp dans le répertoire trouvé. **Hors d'un module, moon-lsp n'a presque rien à dire** — c'est la raison la plus fréquente pour laquelle la complétion semble ne pas fonctionner.
31
32## 4. Demander une complétion
33
34Placez le curseur après un point et appuyez sur **Ctrl-Espace** :
35
36```go
37fmt.
38```
39
40Une liste se déroule sous le curseur. Continuez à taper pour la restreindre, **↑ ↓** pour la parcourir, **Entrée** ou **Tab** pour accepter, **Échap** pour l'abandonner.
41
42Taper un `.` demande une complétion tout seul : la plupart du temps, vous n'appuyez sur rien.
43
44## Savoir ce que fait le serveur
45
46L'extrémité droite de la barre d'état indique l'état du serveur de langage : `LSP: starting…`, `LSP: ready`, ou la raison pour laquelle il n'y en a pas. `Run ▸ Language server status` affiche la même chose dans une boîte.
47
48## Variantes
49
50**Vous ne voulez pas de serveur de langage du tout :**
51
52```bash
53turbo-moonbit -no-lsp main.mbt
54```
55
56**La complétion est morte dans une fenêtre née sans nom.** Une fenêtre « Untitled » n'a aucun fichier à annoncer à moon-lsp tant qu'elle n'est pas enregistrée — appuyez sur **F2** et donnez-lui un nom en `.mbt`, quelque part sous le module. Dès cette sauvegarde, la complétion, le survol et les marques d'erreur fonctionnent dans cette fenêtre ; inutile de quitter et relancer l'éditeur.
57
58**La complétion est vide dans un fichier qui compile.** moon-lsp a besoin que le paquet du fichier se construise. Lancez d'abord `moon check` — un paquet qui ne compile pas ne donne souvent rien d'utile.
59
60**La première complétion sur un gros module est lente.** moon-lsp charge le graphe du module. La barre d'état affiche `LSP: starting…` jusqu'à ce qu'il soit prêt ; les requêtes faites avant sont refusées plutôt que mises en file.
61
62**Une requête met trop de temps.** Chaque requête abandonne au bout de trois secondes : un serveur bloqué ralentit l'éditeur mais ne le fige jamais. La barre d'état signale l'échec.
63
64**La liste est vide dans un fichier qui ne compile pas.** moon-lsp ne répond *rien du tout* — pas d'erreur, une liste vide — pour un paquet qu'il ne peut pas charger. Une déclaration en double ou un import non résolu suffit. L'éditeur indique désormais quel problème fait obstacle :
65
66```
67No completions — this file does not compile: main redeclared in this block
68```
69
70`Run ▸ Language server status` affiche la même chose, avec le chemin du serveur, la racine du projet et l'information de savoir si ce fichier lui a été annoncé. Corrigez d'abord le paquet — `moon install` est la vérification la plus rapide.
71
72**Ctrl-Espace ne fait rien.** tmux, screen et les terminaux intégrés d'IDE interceptent très souvent `Ctrl-Espace` avant l'éditeur. Tapez plutôt un `.`, qui demande une complétion tout seul, ou passez par `Run ▸ Completion`.
73
74## Ce que le serveur apporte d'autre
75
76La complétion est ce qu'il fait de plus bruyant et le moindre de ce qu'il sait. La même connexion répond à huit autres questions, toutes dans le menu **Code** et toutes à propos du symbole sous le curseur — aucune sélection n'est nécessaire.
77
78| Touche | Effet |
79| --- | --- |
80| **Ctrl-Espace** | Liste de complétion |
81| **F1** | Décrire le symbole sous le curseur |
82| **F12** | Sauter là où il est déclaré |
83| **Shift-F12** | Lister partout où il est utilisé |
84| **Ctrl-T** | Trouver un symbole par son nom dans tout le projet |
85
86Et, sans touche : *Go to type definition*, *Find implementations…*, *Symbol in file…* et *Problems…*.
87
88Les problèmes qu'il trouve arrivent sans qu'on demande. La première erreur du fichier que vous éditez apparaît à droite de la barre d'état, précédée de `⚠` ; chaque ligne à problème reçoit une marque dans la gouttière (`×` pour une erreur, `!` pour un avertissement) ; et **Code ▸ Problems…** les liste tous, pour tous les fichiers que le serveur a chargés.
89
90[Comment interroger le code](ask-about-code.md) parcourt l'ensemble.
91
92## Voir aussi
93
94- Pourquoi le serveur est optionnel : [Coloration et complétion](../explanation/colouring-and-completion.md)
95- Toutes les touches : [référence du clavier](../reference/keyboard.md)