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

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

📦 Turbo Python 6fc62ea · on main · k33g · 10h ago
enable-completion.md · 95 lines · 5.3 KBmarkdown
Blame HistoryOpen raw

Activer la complétion Python

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

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

1. Installer pylsp

pipx component add pylsp

2. S'assurer que Turbo Python le trouve

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

pylsp version

Si cette commande répond « introuvable » alors que Turbo Python 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 pyproject.toml
turbo-python main.py

Turbo Python remonte l'arborescence depuis le fichier à la recherche d'un pyproject.toml et démarre pylsp dans le répertoire trouvé. Hors d'un module, pylsp 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-python -no-lsp main.py

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

La première complétion sur un gros module est lente. pylsp 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. pylsp 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 — uv sync 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 Python

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

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

## 1. Installer pylsp

```bash
pipx component add pylsp
```

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

Turbo Python 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
pylsp version
```

Si cette commande répond « introuvable » alors que Turbo Python 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 pyproject.toml
turbo-python main.py
```

Turbo Python remonte l'arborescence depuis le fichier à la recherche d'un `pyproject.toml` et démarre pylsp dans le répertoire trouvé. **Hors d'un module, pylsp 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-python -no-lsp main.py
```

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

**La première complétion sur un gros module est lente.** pylsp 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.** pylsp 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 — `uv sync` 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)