Resolve "Add zsh, fish, and bash shell completion helper function generation as well as the related command"
Closes #4 (closed)
Merge request reports
Activity
assigned to @orestis.malaspin
added 8 commits
-
8d09a116...aac13e56 - 5 commits from branch
3-add-bash-completion-helper-function
- 59b89b5d - started working of fish completion
- b22c3d02 - merged
- 14ab635b - started fish compl
Toggle commit list-
8d09a116...aac13e56 - 5 commits from branch
added 2 commits
requested review from @michael.minelli
requested review from @michael.minelli
mentioned in merge request !8 (closed)
mentioned in merge request !11 (closed)
mentioned in issue #6 (closed)
mentioned in issue #3 (closed)
added 53 commits
-
7fa3a89a...d4dd88c0 - 21 commits from branch
main
- d4dd88c0...37c4ef63 - 22 earlier commits
- 4bdb85bf - conversion to string instead of console
- 91481a58 - refactored. removed useless code
- eb3c284b - fish completion done
- 8ed1d1db - removed useless code
- 34c4f57e - minor correction
- 61571b94 - made things more functional
- c95643ae - added all 3 completion commands
- 6793fd90 - removed useless dependency
- 76817fc9 - fixed typos
- c4c28784 - Corrections
Toggle commit list-
7fa3a89a...d4dd88c0 - 21 commits from branch
@orestis.malaspin Voilà j'ai fini d'éditer le code des completions. Par contre j'aurais une suggestion et une question remarque :
- Est-ce que ce serait pas mieux d'ajouter une option qui va automatiquement mettre le fichier à jour à l'endroit par défaut (par exemple pour fish : ~/.config/fish/completions/dojo.fish).
- Il me semble que pour bash (et du coup pour zsh) tu m'avais dis qu'on pouvait garder la completion dans un fichier spécialement pour la commande en question et le sourcer dans le fichier bashrc. J'ai faux ? Si j'ai bien compris je me dis que ce serait mieux de mettre ce tuto. Car au final append à la fin de fichier qui peut être partagé par plusieurs commande c'est galère surtout qu'il faut le faire à chaque mise à jour de la CLI hors vu que ça remplace pas mais que ça ajoute ça va créé des problème.
Au final ces deux questions sont surtout orienté vers la facilité d'utilisation et la rapidité de mise à jour à chaque nouvelle version.
Pour bash et zsh, si je ne m'abuse j'ai écrit la marche à suivre et (hélas) c'est ce que recommandent les bash completionneurs. En gros t'as pas un moyen simple de faire. Enfin qui implique pas de potentiellement détruire la bash_cmpletion préexistante, ou alors de donner les droits à admin au dojo (ou les deux en même temps!!!)... on pourrait ajouter une option qui va écraser tout ce qu'il y a à écraser au bon endroit, mais sûrement pas le faire par défaut.
Avoir un truc qui écrase ta config est toujours pour le moins risqué. Ce qu'on peut en revanche faire c'est faire une copie de l'ancienne config avec un giga warning avant d'écrire par dessus.
un truc du genre:
dojo completion bash --install
et si le fichier .bash_completion existe, on dit un truc du genre:
Warning: Old completion found and moved to file .bash_completion.old. Please verify nothing no older bash completion was lost.
(On peut avoir un truc similaire pour fish et pour bash). Pour zsh c'est plus chiant parce qu'il faudrait vérifier que les lignes à foutre dans le .zprofile existent déjà ou pas et les ajouter à la fin si elles existent pas. Note que c'est pas super difficile à faire.
Edited by orestis.malaspinOui alors sous forme d'option bien sur. Le comportement par défaut on garde celui que tu as défini actuellement.
C'est surtout d'avoir la possibilité de faire un refresh facilement en une commande car avec toutes les update ça pourrait vite devenir lourd.
Le principe de la copie me va bien. Pour zsh ces lignes sont à mettre une fois du coup ça on peut l'exiger à la main à la limite. Donc soit on garde une option --install et dans le cas de zsh si on voit pas les lignes dans le fichier soit on ajoute soit on dit d'ajouter. Ou sinon on fait pas de test ni rien et l'option on l'appelle --update. Comme tu préfère
Bon partons sur install et on a un prompt qui nous prévient si on écrase quelque chose. En réalité, on pourrait aussi dire que c'est le comportement par défaut et qu'on vérifie si on écrase rien. SI on écrase quelque chose on peut avoir un prompt. Ca me semble le plus simple pour l'utilisateur.
Donc on aurait:
dojo completion bash
Écris la complétion dans ~/.bash_completion et s'il y a déjà un tel fichier, on a un prompt qui nous dit "attention vous allez écrasez vote config actuelle". Dans tous les cas on crée un ".old" pour être sûrs qu'on écrase rien définitivement. Ca te va?
Les cas avec fichiers explicites restent les mêmes qu'actuellement. Les cas avec force dégagent le prompt.
Ca te va?
Super. Je fais ça en vitesse.
Edited by orestis.malaspin
added 2 commits
added 1 commit
- 0f1048e2 - almost finished zsh. should check to transform path to absolute path if not already provided
mentioned in commit 6574c4c6