Création shell, autocompletion, capture de la touche <TAB>

a marqué ce sujet comme résolu.

Bonjour,

J'essaie de créer un shell en Rust, et j'aimerais ajoute l'autocompletion. Si jamais il existe un programme comme rlwrap qui permet de le faire, ça me va ! J'aimerais capturer la touche <TAB> en ligne de commande et exécuter une fonction d'autocompletion. J'ai trouvé notamment getch() de ncurses, cependant faire un initscr(); efface l'écran. J'aimerais donc lier l'évènement touche <TAB> appuyée à une certaine fonction. Si jamais j'arrive à trouver un getchar bloquant qui ne demande pas d'entrée, je pourrais créer un thread afin de récupérer la touche en plus du read_line que je fais dans le thread principal.

Comment résoudre mon problème ?

Merci.

Tu peux m'en dire plus ? J'ai essayé d'utiliser du code C ou la library rust readline ou encore rustyline mais j'ai du mal à trouver un code qui compile qui gère l'autocompletion. J'aimerais également pouvoir paramètrer cette autocompletion.

Voila un petit shell : https://gitlab.univ-nantes.fr/ache/kalash

Dans le fichier https://gitlab.univ-nantes.fr/ache/kalash/blob/master/core.c

Tu trouveras le callback de readline pour l'auto-completion.

Le tout est un mini-shell … Pour un TP. J'améliorerais le shell si j'ai le temps.

Comme bash, c'est du C par du Rust.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte