prek est une implémentation en Rust de l'outil pre-commit, offrant des capacités de vérifictaion et de formatage rapides. Intégrer prek dans le shell améliore l'efficacité du workflow en réduisant les saisies manuelles.
Avantages de l'intégration shell
- Complétion automatique des commandes et options.
- Simplification des opérations fréquentes via des alias.
- Uniformité des configurations au sein des équipes.
- Réduction du temps de saisie grâce aux raccourcis.
Environnements shell compatibles
prek supporte les shells principaux : Bash, Zsh et Fish, chacun offrant une intégration complète.
Génération des scripts de complétion
Pour créer un script de complétion adapté à votre shell, exécutez :
prek completion --generate <type_shell></type_shell>
Remplacez <type_shell> par bash, zsh ou fish.
Configuration pour Bash
prek completion --generate bash > ~/.prek-completion.bash
echo 'source ~/.prek-completion.bash' >> ~/.bashrc
source ~/.bashrc
Configuration pour Zsh
prek completion --generate zsh > ~/.prek-completion.zsh
echo 'source ~/.prek-completion.zsh' >> ~/.zshrc
source ~/.zshrc
Configuration pour Fish
prek completion --generate fish > ~/.config/fish/completions/prek.fish
Fish charge automatiquement les fichiers dans ce répertoire.
Fonctionnalités de complétion avancées
La complétion de prek est contextuelle et inclut :
- Complétion des identifients de hooks pour les commandes telles que
prek run. - Complétion des chemins de projet avec la syntaxe
chemin/projet/. - Complétion des sélecteurs précis avec
chemin/projet:hook-id.
Création d'alias pour simplifier les commandes
Dans votre fichier de configuration shell, ajoutez des alias comme :
# Exemple dans ~/.bashrc ou ~/.zshrc
alias prun='prek run'
alias plist='prek list'
alias pinstall='prek install'
Intégration avec les hooks Git
Pour installer prek comme hook Git, utilisez :
prek hook install
Pour spécifier un type de hook :
prek hook install --type pre-push
Les types supportés comprannent pre-commit, pre-push, commit-msg, entre autres.
Résolution des problèmes
En cas de dysfonctionnement :
- Vérifiez que le script de complétion est correctement chargé par le shell.
- Assurez-vous que l'exécutable prek est accessible dans le PATH.
- Générez des journaux avec
prek --log-file prek.log runpour diagnostiquer. - Mettez à jour prek vers la dernière version disponible.