Novedades de PhpStorm 2022.1

PhpStorm 2022.1 es una actualización principal que incluye compatibilidad con las formas de vector multilínea y anidadas, refactorización de Extract Method in situ, mejora de la compatibilidad con plantillas Blade, WordPress, genéricos en PHP y mucho más.

Formas de vector multilínea y anidadas

Desde PhpStorm 2021.2, las formas de vectores en bloques PHPDoc son compatibles, aunque solo con anotaciones de una línea y de un nivel.

En PhpStorm 2022.1, hemos añadido compatibilidad total con formas de vector multilínea y anidadas tanto en PHPDoc como en el atributo #[ArrayShape]<0>.

Añada anotaciones de formas de vector para obtener la finalización del código para las claves e inferir los tipos de valor en estructuras de datos de vector simples o vectores tipo objeto. Puede usar tanto la sintaxis de PHPDoc como la de Attribute en PhpStorm. La sintaxis es compatible con los tipos de retorno y los tipos de parámetro.

Refactorización Extract Method in situ

Extract Method es una de las refactorizaciones más utilizadas en PhpStorm. Para simplificar el código y crear un nuevo método, basta con seleccionar el trozo de código y pulsar ⌘⌥M (Cmd+Alt+M/Ctrl+Alt+M).

Antes, esto hubiera abierto un cuadro de diálogo para la configuración de la refactorización. Sin embargo, a nadie le gustan las ventanas emergentes, así que ahora, en muchos casos, para extraer un método puede utilizar la refactorización in situ.

No habrá cuadros de diálogo y se creará un nuevo método (o función) en el editor. El cursor estará activo para editar el nombre del nuevo método.

Compatibilidad mejorada con plantillas Laravel Blade

Antes, PhpStorm trataba cada bloque de código en las plantillas Blade como un ámbito independiente, aunque esto solía causar problemas con la finalización de código y la información.

En PhpStorm 2022.1, hemos rediseñado de forma significativa la manera en que el IDE gestiona las plantillas de Blade, con lo que la finalización de código en sus archivos .blade.php será mucho mejor.

También se han resuelto muchas otras incidencias con la finalización de código y el formato de las plantillas Blade. Más información.

Mejoras para WordPress

Compatibilidad con rutas dinámicas con get_template_directory_uri()

En PhpStorm, puede pulsar y hacer clic (Ctrl+clic) en las rutas de los archivos para abrir los archivos correspondientes en el editor, cosa que antes no funcionaba para las rutas dinámicas en el código de WordPress cuando la ruta estaba compuesta por funciones de WordPress.

En esta versión, estamos añadiendo compatibilidad con la función get_template_directory_uri() en las rutas. En las próximas actualizaciones, habrá más funciones compatibles.

Salto de la invocación de vínculo a los registros

El sistema de vínculos de WordPress es potente, pero no era posible saltar desde donde se llamaba a un vínculo hasta donde se declara el controlador.

Ahora hay un icono del medianil a la izquierda de una invocación. Haga clic en él para ver la lista de usos de los vínculos, entre los que se incluyen el registro y otras invocaciones.

Nuevas capacidades avanzadas de metadatos PHP

Como sabrá, además de tener capacidades incorporadas de «conocimiento del código», PhpStorm también tiene conocimiento externo del código, que viene en forma de archivo .phpstorm.meta.php. Puede utilizarlo para enseñar a PhpStorm más información sobre la base de código, lo que resulta en una mejor finalización.

Compatibilidad con magic __call y __callStatic

Si confía en los métodos mágicos _call o _callStatic, perderá la finalización de código para los métodos, ya que no están definidos.

En esta versión, puede añadir la entrada de metadatos correspondiente y obtener la finalización automática para dichas llamadas.

Incluso puede manejar de forma automática las llamadas dinámicas, con lo que recibe un nombre de método específico de un valor de parámetro.

Compatibilidad con tipos de unión

Ahora puede especificar tipos de unión como @|MyClass en .phpstorm.meta.php, lo cual puede mejorar la asistencia a la codificación en los bocetos.

Puede obtener más información acerca de otras funcionalidades de metadatos en la documentación.

Mejora de la compatibilidad con anotaciones y los genéricos

Seguimos mejorando la compatibilidad con los genéricos basados en anotaciones en PhpStorm. En esta versión, cubrimos algunos casos más, entre los que se incluyen:

  • @psalm-import-type, @phpstan-import-type
  • @psalm-trace, @phpstan-trace
  • Genéricos en etiquetas @method

Nuevo asistente de proyecto Composer

Ahora, al crear un nuevo proyecto vacío, puede generar de forma automática un archivo composer.json para este y proporcionar las dependencias deseadas. Una vez creado el proyecto, PhpStorm le pedirá que las instale.

Experiencia de usuario

Nueva ventana de herramientas Notifications

Hemos remplazado la instancia Event Log por una nueva ventana de herramientas Notifications, con la que tendrá una mejor visión general de las notificaciones del IDE y reducirá la posibilidad de perderse algo importante. La nueva ventana de herramientas se encuentra, de forma predeterminada, en la esquina inferior derecha de la ventana del IDE. Todas las notificaciones vienen en dos categorías: Suggestions y Timeline.

Cuadro de diálogo Structural Search and Replace actualizado

Invoque Structural Search and Replace desde el menú principal Edit | Find | Search Structurally

Hemos rediseñado el cuadro de diálogo Structural Search and Replace para que indique una lista de todas las plantillas y le resulte más fácil navegar por ellas.

También hemos añadido un icono de Pin Dialog en la esquina superior derecha del cuadro de diálogo Structural Search and Replace.

Pestañas divididas uniformemente

Ahora puede distribuir uniformemente el espacio de trabajo entre las pestañas del editor para que tengan la misma anchura. Habilite Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

Exportar diagramas UML a otros formatos

Ahora se pueden exportar diagramas UML como archivos yEd .graphml, JGraph .drawio, Graphviz .dot, Mermaid .md, Plantuml e IntelliJ IDEA .uml, lo que los hace compatibles con herramientas de terceros.

Mejoras para Markdown

Ejecutar comandos desde archivos Markdown

Los archivos README suelen describir los pasos necesarios para ejecutar una aplicación y contienen los comandos que necesita. PhpStorm 2022.1 le permitirá ejecutar esos comandos directamente desde el archivo markdown. Solo tiene que hacer clic en el icono Run situado en el medianil a la izquierda del comando.

Copiar fragmento de código para Markdown

También hemos añadido la acción Copy code snippet a los bloques Markdown para que pueda copiar rápidamente el contenido en el portapapeles.

Actualización de la barra de herramientas flotante del editor Markdown

Hemos rediseñado la barra de herramientas flotante que aparece al seleccionar el texto para que sea más fácil dar formato a los archivos Markdown. Además del nuevo diseño, ahora la barra de herramientas permite crear listas y ofrece un menú para seleccionar los estilos de encabezado.

La barra de herramientas es personalizable, por lo que puede llenarla con las opciones que más necesite. Vaya a Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.

VCS

Actualización de Annotate with Git Blame

Hemos mejorado la funcionalidad Annotate with Git Blame para que sea más fácil investigar los cambios introducidos. El IDE resalta las diferencias en las líneas directamente en el editor al pasar el ratón por encima de una anotación y abre la ventana de herramientas Git Log al hacer clic en ella.

Cambios sugeridos en los comentarios de solicitud de incorporación de cambios

Ahora es más fácil trabajar con los cambios sugeridos en PhpStorm, ya que puede aplicar o confirmar los cambios de forma local directamente en el IDE.

Actualización del panel Commit Details en la ventana de herramientas Git

El panel de Commit Details ahora incluye información sobre las firmas GPG y el estado de la compilación. Anteriormente, estos datos se mostraban solo como una columna en el registro Git.

Historial de archivos Git: nueva interfaz de usuario sin índice

La nueva interfaz de usuario de la ventana de herramientas Git File History es ahora independiente del proceso de indexación. Los datos se representan con una nueva interfaz, incluso si el índice de registro está desactivado.

Estos son los cambios más importantes de la versión. Si quiere obtener más información y conocer otras mejoras que hemos implementado, lea el anuncio del lanzamiento en el blog de PhpStorm.