Saltar al contenido principal

Novedades #3

· 6 min de lectura
Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

¡Adiós, viejo amigo!

Módulo de PowerShell

Al principio, solo teníamos el módulo de PowerShell. Es el origen de Oh My Posh y ha permanecido disponible desde entonces, incluso con la migración a Go. Sin embargo, con esa evolución, sus ventajas se han reducido considerablemente. De hecho, incluso introdujo obstáculos adicionales en el camino.

A partir de marzo, el módulo ya no ofrece nuevas funcionalidades y muestra un mensaje de advertencia. Consulta la página de migración para obtener una guía sobre cómo migrar del módulo a otros métodos de instalación. Solo te llevará un minuto.

Sorteo

Hace unas semanas, inicié un sorteo para celebrar el sexto aniversario de Oh My Posh. Pero luego me fui de vacaciones y no seguí para anunciar al ganador. Así que sin más preámbulos, ¡felicidades a @samerde por ser seleccionado por un selector aleatorio en línea y ¡ganar el sorteo!

Características

Ha pasado un tiempo, así que prepárate 😅

PowerShell UTF-8

Al principio, Oh My Posh forzaba a PowerShell a usar UTF-8 debido a problemas con fuentes y rutas. Sin embargo, resultó que eso no era realmente necesario. Se introdujo una nueva forma de invocación que elimina la necesidad de configurar esto en todo el shell y evita efectos secundarios no deseados. Esto aún puede romper rutas cuando, por ejemplo, tu ruta de --config contiene un carácter no ASCII. No se puede tener todo, supongo. En ese caso, configura el shell a UTF-8 durante la inicialización de 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 aún no has visto Nu shell, es el nuevo en la cuadra. Oh My Posh ahora lo admite igual que admitimos cualquier otro shell popular (bash, zsh, fish, etc.). Esto significa que podemos seguir añadiendo funcionalidad sin necesidad de interacción del usuario, aparte de actualizar Oh My Posh.

Acordeón

¿Alguna vez quisiste que un segmento powerline se mostrara colapsado cuando está deshabilitado? ¡Ahora puedes! Usa el estilo accordion para mostrar un segmento en estado plegable.

Prompt de acordeón

Proyecto

Las cosas siguen creciendo. El segmento project ahora admite las siguientes definiciones de proyecto:

Shell

Si trabajas con múltiples versiones de shell, esto es para ti. Ahora puedes usar la propiedad .Version en el segmento shell para distinguir entre versiones:

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

Git

El segmento git aprendió un nuevo truco para facilitarte (o acelerarte) la vida. Antes teníamos codificado de forma fija el modo de archivos no rastreados como normal. Sin embargo, en repositorios grandes esto puede volverse bastante engorroso, así que ahora te permitimos sobrescribir esto por repositorio.

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

Las opciones disponibles están listadas en la documentación de git, ¡úsalas como mejor te parezca!

Propiedades de plantilla entre segmentos

¿Espera, qué? Sí, leíste bien. Oh My Posh ahora admite propiedades de plantilla entre segmentos. Esto significa que puedes usar propiedades de un segmento en la plantilla de otro segmento. ¿Cómo? Oh My Posh expone la propiedad .Segments que contiene todas las propiedades de los segmentos en un mapa. Para utilizar datos de otro segmento, usa {{ .Segments.Segment }} en tu plantilla donde .Segment es el nombre del segmento que deseas usar con la primera letra en mayúscula.

Si quieres, por ejemplo, usar la propiedad .UpstreamGone del segmento git en el segmento exit, puedes hacerlo así:

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

Para que esto funcione, el segmento al que haces referencia debe estar en tu configuración. El ejemplo anterior no funcionará si tu configuración no contiene un segmento git, ya que Oh My Posh solo completa las propiedades cuando es necesario.

Otros

  • oh-my-posh debug ahora mide el tiempo de ejecución correctamente y puede registrar la lógica de inicio

  • Los segmentos de lenguaje ahora pueden distinguir entre archivos y carpetas

  • El segmento python ahora admite archivos .python-version de pyenv

  • El comando init tiene un nuevo modificador llamado --strict que ya no resuelve el ejecutable

  • El segmento battery ahora puede mostrar todos los estados relevantes en macOS

  • El segmento dotnet ahora admite archivos .slnf

  • Un nuevo segmento para mostrar marcas de prompt de integración de shell de iTerm

  • El segmento memory ahora puede mostrar memoria disponible

  • El segmento path ahora tiene una propiedad .Writable que indica si el usuario actual puede escribir en la carpeta actual

Correcciones

  • El segmento git ahora puede manejar repositorios con --separate-git-dir

  • Los hipervínculos se miden correctamente (lo que debería mostrar el prompt alineado a la derecha correctamente)

  • Las secuencias de escape del prompt se escapan correctamente, evitando efectos visuales no deseados

  • Spotify ahora funciona correctamente en Windows para sistemas no ingleses

  • La lógica paralela para acelerar las cosas ya no falla aleatoriamente en Windows

  • La lógica de upstream gone para git estaba rota y ha sido corregida

  • PSReadLine en PowerShell ahora recibe la cantidad correcta de líneas de prompt (Set-PSReadlineOption -ExtraPromptLineCount), esto corrige comportamientos extraños al usar un prompt transitorio cuando tu configuración resulta en un prompt multilínea

  • El instalador winget ahora añade entradas PATH correctamente, independientemente del modo de instalación

Eso es todo por esta vez, nos vemos en la próxima 🤞🏻

¡Sigan manteniendo ese prompt elegante, todos!