Nouveautés #2
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Je n'aurais jamais imaginé publier une deuxième partie si vite, mais nous y revoilà !
Fonctionnalités
Interface CLI (aussi #2)
Dans le post précédent, j'avais présenté certaines modifications de l'interface CLI. Il s'avère que j'ai pu la simplifier davantage. Oh My Posh étant un utilitaire de génération d'invite, la commande prompt devient redondante (c'est implicite). Elle a donc été supprimée, mais continuera de fonctionner pour prévenir toute rupture lors de la mise à jour.
Init
L'initialisation suivante :
oh-my-posh prompt init pwsh | Invoke-Expression
devient désormais :
oh-my-posh init pwsh | Invoke-Expression
Debug
Pour déboguer Oh My Posh, utilisez simplement la commande debug. Elle détecte automatiquement votre configuration, vous évitant ainsi d'utiliser l'option --config.
oh-my-posh debug
Fish shell
Nous prenions déjà en charge fish shell depuis un moment, mais nous avons monté d'un cran. Ayant adopté fish comme shell principal, il était impensable qu'il reste à la traîne. Je vous encourage vivement à l'essayer : l'expérience est très agréable.
Concrètement, quelles nouveautés ? Nous supportons désormais nativement :
Il semble qu'il n'y ait pas encore de prise en charge pour l'invite secondaire dans fish. Dès que ce sera disponible, nous l'ajouterons aussitôt. Pour profiter de ces nouveautés, mettez à jour vers la dernière version et initialisez fish en ajoutant cette ligne dans ~/.config/fish/config.fish :
oh-my-posh init fish | source
Invite transitoire
En parlant de l'invite transitoire, celle-ci a appris de nouveaux tours. Vous pouvez désormais utiliser la propriété .Code pour accéder au code d'erreur de la dernière commande (le cas échéant) dans le modèle. Cela permet par exemple de colorer différemment l'invite transitoire quand la dernière commande a échoué. Cela impliquait également d'ajouter la prise en charge des modèles de couleur, qui n'était pas encore disponible. Désormais, notre invite transitoire prend en charge ces modèles de couleur.
"transient_prompt": {
"background": "p:yellow",
"background_templates": [
"{{ if gt .Code 0 }}p:red{{ end }}"
],
"foreground": "p:black",
"foreground_templates": [
"{{ if gt .Code 0 }}p:white{{ end }}"
],
"template": "<background,transparent>\ue0b6</> {{ .Folder }} <background,transparent>\ue0b0</><,transparent> </>"
}
Ce qui produit ce résultat :

Configuration version 2
Vous souvenez-vous de la migration vers la configuration version 1 en début d'année ? Nous venons de migrer vers la version 2. En observant l'architecture d'Oh My Posh, les différentes invites (transitoire, secondaire, etc.) se rapprochaient progressivement du modèle utilisé pour les segments. La seule différence était que template n'était pas une propriété mais un champ de ces invites. Comme tous les segments prennent désormais en charge les templates, il était évident d'aligner les deux modèles et d'effectuer une migration vers la configuration version 2, épargnant ainsi tout travail manuel.
Cette définition de segment :
{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"properties": {
"template": "{{ .UserName }} "
},
"style": "diamond",
"type": "session"
}
sera automatiquement migrée ainsi pour la v2 :
{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"style": "diamond",
"template": "{{ .UserName }} ",
"type": "session"
}
Go 1.18
Ce n'est pas directement visible pour l'utilisateur final, mais sachez qu'Oh My Posh utilise désormais go 1.18 par défaut. Cela apporte des améliorations évidentes au langage et de nouvelles fonctionnalités à explorer. La plus notable est la généricité, mais nous ne pouvons pas encore en bénéficier car elle n'est pas prise en charge pour les méthodes, ce qui constitue notre principal cas d'utilisation.
Quoi qu'il en soit, il est préférable de rester à jour. Si vous remarquez des anomalies, signalez-les-nous !
C'est tout pour cette semaine, rendez-vous la semaine prochaine 🤞🏻
Gardez cette invite élégante, tout le monde !