jzck / 42sh

:four::two: bash-like shell (school project)
7 stars 2 forks source link

completion #21

Closed wescande closed 7 years ago

wescande commented 7 years ago

Coucou, Si je tape ls puis je fais tab, il ne me propose pas ls dans la liste. Si je tape ema puis je fais tab, il devrai m'auto-remplir avec emacs car tous les résultats commencent par emacs.

jzck commented 7 years ago

20 je viens de dire pareil :o

m600x commented 7 years ago

Pour ls, c'est un comportement déviant connu (c_parser.c L52-53 exclu les match parfait pour autre chose), je cherche un fix pour ça. (to-do)

Pour emacs, c'est volontaire: l'utilisateur n'a pas validé de choix et ce n'est donc pas prérempli. (Won't fix)

wescande commented 7 years ago

pour emacs, c'est le fonctionnement meme de l'autocompletion, je me permet d'insister car le sujet de correction du minishell (donc la completion censé etre la plus basique) demande déja d'avoir ce fonctionnement.

m600x commented 7 years ago

Il complete s'il n'y a qu'une seule possibilité (autocompletion) mais affiche la liste sélectionnable si plusieurs choix sont possible (autocompletion avancé). Cependant, si la liste existe et reste ouverte, la commande n'est pas altérer.

Par contre ce qui est validé ce sont les entrées utilisateur e tab m puis a et la liste se met a jour dynamiquement. Sans confirmation active de l'utilisateur, la commande ne se modifie pas.

Donc oui, le module fait son travail: autocompletion avec le debut du nom si un unique candidat est possible. Sinon une liste est affiché. Et c'est une version avancé dans le sens ou c'est selectionnable et mis a jour en temps réel.

m600x commented 7 years ago

Le bug ls a été fix par 37f28c8.

Je laisse ouvert pour parler du comportement d'emacs :)

m600x commented 7 years ago

Complément d'informations:

Le barême est le suivant:

Minishell (dec 2016):

Nous allons évaluer dans cette section la complétion.
Effectuez les 2 tests suivants. Si l'un au moins de ces tests échoue, alors toute la section est échouée, passez à la suivante :
- Tapez le début de commande "$> ec", puis appuyez sur tabulation. Le minishell doit compléter la commande en
"$> echo".
- Tapez le début de commande "$> ema", puis appuyez sur tabulation. Le minishell doit compléter la commande en
"$> emacs". 

21sh (avr 2016):

La complétion marche-t-elle ?

42sh:

La complétion marche-t-elle ?

Donc oui, wescande, tu as parfaitement raison: c'est le comportement demander sur minishell pour ces deux cas précis. Mais il n'indique pas non plus le fait de devoir afficher une liste de possibilités, quoi faire quand il y a plusieurs éléments, pouvoir bouger, selectionner, mettre a jour, etc, etc, etc. D'autant que sur les corrections qui nous intéresse (21/42), aucun comportement précis n'est demander mais seulement qu'il fonctionne (choix raisonnable et justifié).

Le fait est que ce n'est pas la difficulté en soit qui est insurmontable ni meme le temps que ça prendrait mais plus le comportement moins clair (mais pas pour autant mauvais) que je trouve a préremplir partiellement le choix. C'est bien le choix "technique" qui me gêne et pas autre chose.

Bien entendu je reste ouvert à la discussion et si la majorité estime le préremplissage comme meilleur je le ferais sans soucis. :)

jzck commented 7 years ago

on peut fermer ?