turbo-editors/turbo-moonbitpublic Fork 0
cc1f59535e31ad5d5a940f517c7375fbc8c663a0
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.

📦 Turbo MoonBit cc1f595 · on cc1f59535e31ad5d5a940f517c7375fbc8c663a0 · k33g · 23h ago
enable-completion.md · 95 lines · 5.4 KBmarkdown
Blame HistoryOpen raw

Activer la complétion MoonBit

Ce 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.

La 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.

1. Installer moon-lsp

curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash

2. S'assurer que Turbo MoonBit le trouve

Turbo 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 :

moon-lsp version

Si cette commande répond « introuvable » alors que Turbo MoonBit le trouve quand même, c'est normal et sans conséquence.

3. Ouvrir un fichier à l'intérieur d'un module

cd /chemin/vers/votre/module   # le répertoire qui contient moon.mod
turbo-moonbit main.mbt

Turbo 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.

4. Demander une complétion

Placez le curseur après un point et appuyez sur Ctrl-Espace :

fmt.

Une 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.

Taper un . demande une complétion tout seul : la plupart du temps, vous n'appuyez sur rien.

Savoir ce que fait le serveur

L'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.

Variantes

Vous ne voulez pas de serveur de langage du tout :

turbo-moonbit -no-lsp main.mbt

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.

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.

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.

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.

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 :

No completions — this file does not compile: main redeclared in this block

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.

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.

Ce que le serveur apporte d'autre

La 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.

Touche Effet
Ctrl-Espace Liste de complétion
F1 Décrire le symbole sous le curseur
F12 Sauter là où il est déclaré
Shift-F12 Lister partout où il est utilisé
Ctrl-T Trouver un symbole par son nom dans tout le projet

Et, sans touche : Go to type definition, Find implementations…, Symbol in file… et Problems….

Les 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.

Comment interroger le code parcourt l'ensemble.

Voir aussi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Activer la complétion MoonBit

Ce 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.

La 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.

## 1. Installer moon-lsp

```bash
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
```

## 2. S'assurer que Turbo MoonBit le trouve

Turbo 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 :

```bash
moon-lsp version
```

Si cette commande répond « introuvable » alors que Turbo MoonBit le trouve quand même, c'est normal et sans conséquence.

## 3. Ouvrir un fichier à l'intérieur d'un module

```bash
cd /chemin/vers/votre/module   # le répertoire qui contient moon.mod
turbo-moonbit main.mbt
```

Turbo 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.

## 4. Demander une complétion

Placez le curseur après un point et appuyez sur **Ctrl-Espace** :

```go
fmt.
```

Une 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.

Taper un `.` demande une complétion tout seul : la plupart du temps, vous n'appuyez sur rien.

## Savoir ce que fait le serveur

L'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.

## Variantes

**Vous ne voulez pas de serveur de langage du tout :**

```bash
turbo-moonbit -no-lsp main.mbt
```

**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.

**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.

**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.

**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.

**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 :

```
No completions — this file does not compile: main redeclared in this block
```

`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.

**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`.

## Ce que le serveur apporte d'autre

La 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.

| Touche | Effet |
| --- | --- |
| **Ctrl-Espace** | Liste de complétion |
| **F1** | Décrire le symbole sous le curseur |
| **F12** | Sauter là où il est déclaré |
| **Shift-F12** | Lister partout où il est utilisé |
| **Ctrl-T** | Trouver un symbole par son nom dans tout le projet |

Et, sans touche : *Go to type definition*, *Find implementations…*, *Symbol in file…* et *Problems…*.

Les 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.

[Comment interroger le code](ask-about-code.md) parcourt l'ensemble.

## Voir aussi

- Pourquoi le serveur est optionnel : [Coloration et complétion](../explanation/colouring-and-completion.md)
- Toutes les touches : [référence du clavier](../reference/keyboard.md)