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

ask-about-code.md · 72 lines · 3.9 KBmarkdown Blame HistoryRaw
📦 Turbo MoonBit cc1f595 k33g 15h ago1# Comment interroger le code
2
3Ce guide montre comment suivre un nom dans un projet : où il est déclaré, ce qui l'implémente, partout où il est utilisé, et ce qui ne va pas avec lui. Il suppose Turbo MoonBit installé et un serveur de langage en marche — la barre d'état affiche `LSP: ready` quand c'est le cas.
4
5Pour se déplacer dans un fichier — chercher, aller à une ligne, changer de fenêtre — voir plutôt [Comment se déplacer dans un fichier](navigate-code.md).
6
7## Placez le curseur sur un nom
8
9N'importe lequel de ses caractères suffit. Chaque question ci-dessous porte sur la **position du curseur**, pas sur une sélection : il n'y a rien à surligner d'abord.
10
11## Demandez
12
13| Pour trouver | Faites | Raccourci |
14| --- | --- | --- |
15| Ce que c'est | **Code ▸ Describe symbol** | `F1` |
16| Où c'est déclaré | **Code ▸ Go to definition** | `F12` |
17| Où son *type* est déclaré | **Code ▸ Go to type definition** | |
18| Ce qui l'implémente | **Code ▸ Find implementations…** | |
19| Partout où c'est utilisé | **Code ▸ Find references…** | `Shift-F12` |
20
21**Deux de ces cinq entrées ne signalent rien avec moon-lsp.** Le serveur n'annonce ni `typeDefinition` ni `implementation` : **Go to type definition** et **Find implementations** répondent donc qu'il n'y a rien, quelle que soit la qualité du code. Les trois autres, et les deux recherches de symboles ci-dessous, fonctionnent. Voir [coloration et complétion](../explanation/colouring-and-completion.md) pour savoir pourquoi c'est écrit plutôt que caché derrière une entrée de menu grisée.
22
23Une seule réponse vous y emmène directement. Plusieurs ouvrent une liste montrant le fichier, sa ligne, et le texte de cette ligne :
24
25```
26References (3)
27 main.mbt:1 fn helper() -> Int {
28 main.mbt:7 helper()
29 main.mbt:12 helper() + 1
30```
31
32Déplacez-vous aux flèches, `Entrée` pour y aller, `Échap` pour rester.
33
34## Quand rien ne revient
35
36Trois choses se ressemblent, et la barre d'état les distingue :
37
38| Elle affiche | Signification |
39| --- | --- |
40| `No references found` | Le serveur a répondu, et il n'y en a pas |
41| Autre chose, par exemple `Loading…` | Le serveur n'a pas fini d'indexer. Attendez un instant et redemandez. |
42| `LSP: off` dans la barre d'état | Aucun serveur ne tourne. Voir [Comment activer la complétion](enable-completion.md). |
43
44La deuxième mérite d'être connue : un serveur encore en train d'indexer répond rien à toutes les questions, et c'est indiscernable d'une vraie réponse si l'éditeur ne le dit pas.
45
46## Chercher par le nom
47
48- **Code ▸ Symbol in file…** liste ce que déclare le fichier devant vous, indenté, avec la sorte de chaque symbole — un plan que l'on parcourt.
49- **Code ▸ Symbol in project…** (`Ctrl-T`) demande un nom et cherche partout. Ce qui compte comme correspondance appartient au serveur ; moon-lsp est tolérant, quelques lettres suffisent en général.
50
51## Voir ce qui ne va pas
52
53**Code ▸ Problems…** liste tous les problèmes signalés par le serveur, pour **tous les fichiers qu'il a chargés** — le plus souvent davantage que celui que vous éditez. En choisir un vous mène à la ligne.
54
55Les lignes à problème portent une marque dans la gouttière, à côté du numéro de ligne :
56
57| Marque | Signification |
58| --- | --- |
59| `×` | Une erreur |
60| `!` | Un avertissement |
61| `i` | Une information |
62| `·` | Une suggestion |
63
64Une ligne qui a plusieurs problèmes montre le pire d'entre eux.
65
66**Les marques ont besoin des numéros de ligne.** Elles occupent la colonne qui sépare les numéros du texte : masquer la gouttière avec **Options ▸ Line numbers** les masque aussi.
67
68## Voir aussi
69
70- Chaque entrée et sa touche : [Menus](../reference/menus.md)
71- Faire tourner un serveur : [Comment activer la complétion](enable-completion.md)
72- Ce que l'éditeur demande, et pourquoi : [Coloration et complétion](../explanation/colouring-and-completion.md)