Aller au contenu principal

Nouveautés #3

· 6 min de lecture
Traduction Bêta Non Officielle

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 →

Adieu, vieil ami !

Module PowerShell

Au tout début, nous n'avions que le module PowerShell. C'est l'origine d'Oh My Posh et il est resté disponible depuis, même après la migration vers Go. Cependant, avec cette évolution, ses avantages se sont considérablement réduits. En réalité, il a même introduit des obstacles supplémentaires en cours de route.

Depuis mars, le module n'offre plus de nouvelles fonctionnalités et affiche un message d'avertissement. Consultez la page de migration pour un guide sur comment migrer du module vers d'autres méthodes d'installation. Cela ne prend qu'une minute.

Concours

Il y a quelques semaines, j'ai lancé un concours pour célébrer les 6 ans d'Oh My Posh. Mais je suis ensuite parti en vacances et n'ai pas annoncé le gagnant. Alors sans plus attendre, félicitations à @samerde qui a été sélectionné par un tirage au sort en ligne et remporte le concours !

Fonctionnalités

Cela fait un moment, alors accrochez-vous bien 😅

PowerShell UTF-8

À ses débuts, Oh My Posh forçait PowerShell en UTF-8 à cause de problèmes de polices et de chemins. Cependant, il s'est avéré que ce n'était pas vraiment nécessaire. Une nouvelle méthode d'invocation a été introduite, qui supprime le besoin de configurer cela à l'échelle du shell et évite les effets secondaires indésirables. Cela peut toutefois toujours casser des chemins quand par exemple votre chemin --config contient un caractère non-ascii. On ne peut pas tout avoir, je suppose. Dans ce cas, configurez le shell en UTF-8 dans le cadre de l'initialisation d'Oh My Posh.

$previousOutputEncoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [Text.Encoding]::UTF8
try {
oh-my-posh init pwsh --config ~/custom.omp.json | Invoke-Expression
} finally {
[Console]::OutputEncoding = $previousOutputEncoding
}

Nu shell

Si vous n'avez pas encore vu Nu shell, c'est un nouvel arrivant. Oh My Posh le prend désormais en charge comme n'importe quel autre shell populaire (bash, zsh, fish, etc.). Cela signifie que nous pouvons continuer à ajouter des fonctionnalités sans nécessiter d'interaction utilisateur, hormis la mise à jour d'Oh My Posh.

Accordéon

Vous avez toujours voulu qu'un segment powerline s'affiche réduit quand il est désactivé ? C'est maintenant possible ! Utilisez le style accordion pour afficher un segment dans un état repliable.

Invite avec accordéon

Projet

Les choses ne cessent de s'étendre. Le segment project prend désormais en charge les définitions de projet suivantes :

Shell

Si vous travaillez avec plusieurs versions de shell, ceci est pour vous. Vous pouvez désormais utiliser la propriété .Version dans le segment shell pour distinguer les versions :

"template": " in {{ .Name }} {{ .Version }} "

Git

Le segment git a appris une nouvelle astuce pour vous simplifier (ou accélérer) la vie. Auparavant, nous fixions en dur le mode des fichiers non suivis à normal. Cependant, sur des dépôts plus grands, cela peut devenir fastidieux, donc nous vous permettons désormais de surcharger ce comportement par dépôt.

"untracked_modes": {
"/Users/user/Projects/oh-my-posh/": "no"
}

Les options disponibles sont listées dans la documentation git, utilisez-les comme bon vous semble !

Propriétés de modèle inter-segments

Attendez, quoi ? Oui, vous avez bien lu. Oh My Posh prend désormais en charge les propriétés de modèle inter-segments. Cela signifie que vous pouvez utiliser les propriétés d'un segment dans le modèle d'un autre segment. Comment ? Oh My Posh expose la propriété .Segments qui contient toutes les propriétés des segments dans une map. Pour utiliser les données d'un autre segment, utilisez {{ .Segments.Segment }} dans votre modèle où .Segment est le nom du segment que vous souhaitez utiliser avec la première lettre en majuscule.

Si vous souhaitez par exemple utiliser la propriété .UpstreamGone du segment git dans le segment exit, vous pouvez procéder ainsi :

"template": " {{ if .Segments.Git.UpstreamGone }}\uf7d3{{ else if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} "
attention

Pour que cela fonctionne, le segment référencé doit figurer dans votre configuration. L'exemple ci-dessus ne fonctionnera pas si votre configuration ne contient pas de segment git, car Oh My Posh ne remplit les propriétés que lorsque nécessaire.

Autres nouveautés

  • oh-my-posh debug mesure désormais correctement le temps d'exécution et peut journaliser la logique de démarrage

  • Les segments de langage peuvent désormais distinguer les fichiers des dossiers

  • Le segment python prend désormais en charge les fichiers .python-version de pyenv

  • La commande init dispose d'un nouveau paramètre --strict qui ne résout plus l'exécutable

  • Le segment batterie peut désormais afficher tous les états pertinents sur macOS

  • Le segment dotnet prend désormais en charge les fichiers .slnf

  • Un nouveau segment pour afficher les marques d'invite de l'intégration shell iTerm

  • Le segment mémoire peut désormais afficher la mémoire disponible

  • Le segment chemin dispose désormais d'une propriété .Writable, indiquant si l'utilisateur actuel peut écrire dans le dossier courant

Corrections

  • Le segment git gère désormais les dépôts avec --separate-git-dir

  • Les hyperliens sont correctement mesurés (ce qui devrait afficher l'invite alignée à droite correctement)

  • Les séquences d'échappement de l'invite sont correctement échappées, évitant ainsi des effets visuels indésirables

  • Spotify fonctionne désormais correctement sous Windows pour les systèmes non anglophones

  • La logique parallèle pour accélérer les choses ne plante plus aléatoirement sous Windows

  • La logique de suivi disparu (upstream gone) pour git était cassée et a été corrigée

  • PSReadLine dans PowerShell reçoit désormais le bon nombre de lignes d'invite (Set-PSReadlineOption -ExtraPromptLineCount), ce qui corrige les comportements étranges lors de l'utilisation d'une invite transitoire lorsque votre configuration produit une invite multiligne

  • L'installateur winget ajoute désormais correctement les entrées PATH, quel que soit le mode d'installation

C'est tout pour cette fois, à la prochaine 🤞🏻

Gardez cette invite élégante, tout le monde !