Skip to content

Régler l'autocomplétion

This content is not available in your language yet.

Vous ouvrez cette page parce que les suggestions en cours de frappe n’arrivent pas, arrivent trop souvent, ou viennent d’un modèle trop lent.

C’est le premier point à vérifier, parce que son échec est muet.

Le rôle autocomplete ne fait pas partie des rôles attribués par défaut. Un modèle déclaré sans roles sert au chat, à l’édition et à l’application — pas à l’autocomplétion. Sans modèle portant ce rôle, la fonction reste inactive : ni suggestion, ni message, ni entrée dans les journaux.

name: Local Config
version: 1.0.0
models:
- name: Autocomplétion
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocomplete

Un modèle petit et rapide sert mieux ici qu’un gros : la suggestion doit arriver avant que vous ayez fini de taper. Si plusieurs modèles portent le rôle, le premier déclaré est retenu.

L’élément de barre d’état de l’extension ouvre un menu qui liste les modèles du rôle autocomplete et permet d’en changer sans rééditer le fichier. Une liste vide y confirme le diagnostic ci-dessus.

Le réglage lemniscate.enableTabAutocomplete est à true par défaut. La commande Toggle Autocomplete Enabled, sur Ctrl+K Ctrl+A (Cmd+K Cmd+A sur macOS), l’inverse et met le réglage à jour.

Pour la couper depuis la configuration, modèle par modèle :

name: Local Config
version: 1.0.0
models:
- name: Autocomplétion
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocomplete
autocompleteOptions:
disable: true

L’autocomplétion se coupe d’elle-même dans certains fichiers, sans réglage : le fichier de configuration lui-même, les fichiers .prompt, et tout ce qu’un .lemniscateignore exclut.

Avec lemniscate.pauseTabAutocompleteOnBattery à true, débrancher le secteur met les suggestions en pause et le rebranchement les rétablit. Cet état de pause n’est pas mémorisé d’un démarrage à l’autre.

Les options se posent sur le modèle, dans autocompleteOptions. Il n’existe pas de bloc tabAutocompleteOptions à la racine de config.yaml.

name: Local Config
version: 1.0.0
models:
- name: Autocomplétion
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocomplete
autocompleteOptions:
debounceDelay: 500
maxPromptTokens: 2048
modelTimeout: 300
onlyMyCode: false
Option Défaut Effet
debounceDelay 350 millisecondes d’inactivité avant d’interroger le modèle
modelTimeout 150 millisecondes accordées au modèle avant abandon
maxPromptTokens 1024 taille du contexte envoyé
useCache true réutilise une suggestion déjà calculée au même endroit
onlyMyCode true limite les extraits de contexte au code du dépôt

Un modèle local lent demande d’augmenter modelTimeout : à 150 millisecondes, la suggestion est abandonnée avant d’arriver, ce qui se lit comme une autocomplétion qui « ne marche pas ».

Next Edit : disponible partout, meilleur sur certains modèles

Section intitulée « Next Edit : disponible partout, meilleur sur certains modèles »

Le réglage lemniscate.enableNextEdit vaut true par défaut, et la fonction tourne avec n’importe quel modèle d’autocomplétion. Il n’y a pas de liste de modèles autorisés.

Ce qui change d’un modèle à l’autre, c’est la qualité des suggestions. Deux familles de modèles ont été spécifiquement entraînées à prédire l’édition suivante — mercury-coder et instinct — et reçoivent à ce titre une requête taillée pour elles. Tout autre modèle reçoit une requête générique, qui lui explique la tâche en langage courant : cela fonctionne, mais les suggestions peuvent être à côté de la plaque.

L’extension le dit : sur un modèle qui n’a pas été entraîné pour cette tâche, une notification prévient une fois par modèle et par session que les suggestions médiocres viennent du modèle et non de la fonction. Elle propose au passage de couper Next Edit ou de changer de modèle.

Un modèle peut se prononcer explicitement sur la question :

name: Local Config
version: 1.0.0
models:
- name: Autocomplétion
provider: openai
model: mon-modele-interne
apiBase: https://llm.interne.example/v1
roles:
- autocomplete
capabilities:
- next_edit

Attention à l’effet de bord. Dès qu’une liste capabilities est présente, elle fait autorité et remplace le comportement par défaut. Écrire capabilities: [tool_use] sur un modèle, quel qu’il soit, désactive Next Edit — c’est le seul moyen de le désactiver par la configuration, et c’est délibéré. Si vous déclarez des capacités, énumérez-les toutes.

Quand la fonction est active, Tab accepte la suggestion proposée et Échap la masque. Ces raccourcis ne sont enregistrés que dans ce cas : leurs commandes restent introuvables dans la palette tant que Next Edit est coupé, par le réglage ou par une liste capabilities.

La liste complète des réglages de l’extension est en Extension VS Code.