turbo-editors/turbo-rustpublic Fork 0
main
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-rust.git
git clone ssh://git@rickub.com/turbo-editors/turbo-rust.git

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

📦 Turbo Rust 713ea5c · on main · k33g · 11h ago
enable-completion.md · 95 lines · 5.3 KBmarkdown
Blame HistoryOpen raw

Activer la complétion Rust

Ce guide montre comment faire fonctionner la complétion, les descriptions de symboles et le saut à la définition. Il suppose que Turbo Rust est déjà installé et que vous savez ce qu'est une caisse Cargo.

La complétion vient de rust-analyzer, le serveur de langage officiel de Rust. Turbo Rust ne l'embarque pas : l'édition et la coloration fonctionnent sans lui, et seule la complétion est perdue.

1. Installer rust-analyzer

rustup component add rust-analyzer

2. S'assurer que Turbo Rust le trouve

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

rust-analyzer version

Si cette commande répond « introuvable » alors que Turbo Rust 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 Cargo.toml
turbo-rust main.rs

Turbo Rust remonte l'arborescence depuis le fichier à la recherche d'un Cargo.toml et démarre rust-analyzer dans le répertoire trouvé. Hors d'un module, rust-analyzer 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-rust -no-lsp main.rs

La complétion est morte dans une fenêtre née sans nom. Une fenêtre « Untitled » n'a aucun fichier à annoncer à rust-analyzer tant qu'elle n'est pas enregistrée — appuyez sur F2 et donnez-lui un nom en .rs, quelque part sous le crate. 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. rust-analyzer a besoin que le paquet du fichier se construise. Vérifiez d'abord cargo build — un paquet qui ne compile pas ne donne souvent rien d'utile.

La première complétion sur un gros module est lente. rust-analyzer 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. rust-analyzer 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 — cargo build 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 Rust

Ce guide montre comment faire fonctionner la complétion, les descriptions de symboles et le saut à la définition. Il suppose que Turbo Rust est déjà installé et que vous savez ce qu'est une caisse Cargo.

La complétion vient de **rust-analyzer**, le serveur de langage officiel de Rust. Turbo Rust ne l'embarque pas : l'édition et la coloration fonctionnent sans lui, et seule la complétion est perdue.

## 1. Installer rust-analyzer

```bash
rustup component add rust-analyzer
```

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

Turbo Rust 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
rust-analyzer version
```

Si cette commande répond « introuvable » alors que Turbo Rust 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 Cargo.toml
turbo-rust main.rs
```

Turbo Rust remonte l'arborescence depuis le fichier à la recherche d'un `Cargo.toml` et démarre rust-analyzer dans le répertoire trouvé. **Hors d'un module, rust-analyzer 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-rust -no-lsp main.rs
```

**La complétion est morte dans une fenêtre née sans nom.** Une fenêtre « Untitled » n'a aucun fichier à annoncer à rust-analyzer tant qu'elle n'est pas enregistrée — appuyez sur **F2** et donnez-lui un nom en `.rs`, quelque part sous le crate. 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.** rust-analyzer a besoin que le paquet du fichier se construise. Vérifiez d'abord `cargo build` — un paquet qui ne compile pas ne donne souvent rien d'utile.

**La première complétion sur un gros module est lente.** rust-analyzer 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.** rust-analyzer 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 — `cargo build` 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)