Novidades do PhpStorm 2022.1

O PhpStorm 2022.1 é uma atualização ampla que traz o suporte array shapes aninhados e multilinha, refatoração Extract Method no próprio local, suporte melhorado a modelos do Blade, WordPress, genéricos no PHP e muito mais.

Array shapes aninhados e multilinha

O suporte a formas de array em blocos PHPDoc existe desde o PhpStorm 2021.2. Porém, eram suportadas apenas anotações de nível único e em uma única linha.

No PhpStorm 2022.1, adicionamos suporte total a formas de array aninhados e de multilinha no PHPDoc e no atributo #[ArrayShape].

Adicione anotações array shape para obter complementação de código para as chaves e inferir os tipos de valores em estruturas de dados de arrays simples ou arrays semelhantes a objetos. Você pode usar tanto a sintaxe do PHPDoc quanto a dos atributos no PhpStorm, como preferir. A sintaxe tem suporte para tipos de retorno e de parâmetro.

Refatoração Extract Method no próprio local

Extract Method é uma das refatorações mais usadas no PhpStorm. Para simplificar o código e criar um novo método, basta selecionar o trecho de código e pressionar ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).

Antes, isso abria um diálogo para a configuração da refatoração, mas ninguém gosta de pop-ups. Então agora, em muitos casos você pode usar a refatoração no próprio local como alternativa para extrair um método.

Não aparecerá mais uma caixa de diálogo e um novo método (ou função) será criado imediatamente no editor. O cursor ficará ativo para editar o nome do novo método.

Suporte melhorado para modelos do Laravel Blade

Antes, o PhpStorm tratava cada bloco de código nos modelos do Blade como um escopo independente. Isso constumava causar problemas com complementações de código e insights.

No PhpStorm 2022.1, reformulamos significativamente a forma como o IDE manipula modelos do Blade. O resultado é que você obterá uma complementação de código muito melhor nos seus arquivos .blade.php.

Também foram resolvidos muitos outros problemas com a complementação de código e a formatação em modelos do Blade. Saiba mais.

Melhorias para o WordPress

Suporte a caminhos dinâmicos com `get_template_directory_uri()`

No PhpStorm, você pode dar um ⌘+clique (Ctrl+click) nos caminhos de arquivos para abrir os arquivos correspondentes no editor. Porém, isso não funcionava para caminhos dinâmicos no código do WordPress quando esses caminhos estavam associados a funções do WordPress.

Nesta versão, adicionamos o suporte à função get_template_directory_uri() em caminhos. Haverá suporte a mais funções nas próximas atualizações.

Saltar da invocação do hook aos registros

O sistema de hooks do WordPress é poderoso, mas não era possível saltar do ponto de onde um hook foi invocado para aquele onde o handler é declarado.

Agora há um ícone de medianiz à esquerda de uma invocação. Clique nele para ver uma lista de usos de hooks, incluindo o registro e outras invocações.

Novos recursos avançados para metadados de PHP

Como você sabe, além de ter a capacidade embutida de "perceber o código", o PhpStorm também tem conhecimento externo do código. Esse conhecimento vem na forma do arquivo .phpstorm.meta.php. Você pode usá-lo para ensinar mais a respeito da base de código ao PhpStorm, o que resulta em uma complementação melhorada.

Suporte aos métodos mágicos __call e __callStatic

Se você precisasse usar os métodos mágicos _call e _callStatic, você perderia a complementação de código para esses métodos, porque eles não são definidos.

Nesta versão, você pode adicionar o item correspondente de metadados e obter complementação automática para essas chamadas.

Você pode até manipular chamadas dinâmicas automaticamente, recebendo o nome específico de um método em um valor de parâmetro.

Suporte a tipos de união

Agora, você pode especificar tipos de união como @|MyClass em .phpstorm.meta.php. Isso pode melhorar a assistência para codificação em simulações.

Saiba mais sobre outros recursos de metadados na documentação.

Melhoria no suporte a anotações e elementos genéricos

Continuamos melhorando nosso suporte a genéricos baseados em anotações no PhpStorm. Nesta versão, cobrimos mais alguns casos, incluindo, mas não somente:

  • @psalm-import-type, @phpstan-import-type
  • @psalm-trace, @phpstan-trace
  • Genéricos em tags @method

Novo assistente para Composer Project

Agora, ao criar um novo projeto vazio, você tem a opção de gerar automaticamente um arquivo composer.json para ele e informar as dependências desejadas. Depois que o projeto for criado, o PhpStorm solicitará que você as instale.

Experiência do usuário

Nova janela de ferramentas Notifications

Substituímos a instância Event Log com uma nova janela de ferramentas Notifications. Isto ajudará você a ter uma melhor visão geral das notificações do IDE e diminuirá as chances de deixar de perceber algo importante. A nova janela de ferramentas está localizada como padrão no canto inferior direito da janela do IDE. Todas as notificações vêm em uma de duas categorias: Suggestions e Timeline.

Caixa de diálogo Structural Search and Replace atualizada

Invoque Structural Search and Replace a partir do menu principal com Edit | Find | Search Structurally

Reformulamos a caixa de diálogo Structural Search and Replace para apresentar uma lista de todos os modelos, para tornar mais fácil a navegação entre eles.

Também adicionamos um ícone Pin Dialog no canto superior direito do diálogo Structural Search and Replace.

Abas uniformemente divididas

Agora você pode distribuir uniformemente o espaço de trabalho entre as abas do editor para que elas tenham todas a mesma largura. Habilite Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

Exportação de diagramas UML para outros formatos

Agora, é possível exportar diagramas UML como arquivos .graphml do yEd, .drawio do JGraph, .dot do Graphviz, .md do Mermaid e .uml do Plantuml e IntelliJ IDEA, tornando-os compatíveis com ferramentas de terceiros.

Melhorias para Markdown

Execução de comandos a partir de arquivos Markdown

Arquivos README costumam descrever as etapas necessárias para executar um aplicativo e listar os comandos que você precisa usar. O PhpStorm 2022.1 permite que você execute esses comandos diretamente do arquivo Markdown. Basta clicar no ícone Run na medianiz à esquerda do comando.

Copy code snippet para Markdown

Também adicionamos uma ação Copy code snippet aos blocos Markdown, para que você possa copiar rapidamente o conteúdo dos blocos para a área de transferência.

Barra de ferramentas flutuante do editor Markdown atualizada

Reformulamos a barra de ferramentas flutuante que aparece na seleção de texto, para facilitar a formatação de arquivos Markdown. Além do novo design, a barra de ferramentas agora permite que você crie listas e tem um menu para selecionar estilos de cabeçalho.

A barra de ferramentas é personalizável, para que você possa preenchê-la com as opções de que mais precisar. Vá para Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.

VCS

Recurso Annotate with Git Blame atualizado

Aprimoramos a funcionalidade do recurso Annotate with Git Blame para facilitar a investigação das alterações introduzidas. O IDE realça as diferenças entre as linhas diretamente no editor quando você passa o mouse sobre uma anotação e abre a janela de ferramentas Git Log quando você clica na anotação.

Alterações sugeridas em comentários de solicitações pull

Ficou mais fácil trabalhar com alterações sugeridas no PhpStorm, pois agora você pode aplicar ou submeter alterações localmente, no próprio IDE.

Painel Commit Details atualizado na janela de ferramentas Git

O painel Commit Details agora inclui informações sobre assinaturas GPG e status de builds. Antes, esses dados eram mostrados apenas como uma coluna no log do Git.

Git File History: nova interface do usuário sem índice

A nova interface do usuário para a janela de ferramentas Git File History agora é independente do processo de indexação. Os dados são representados com uma nova interface, mesmo que o índice Log esteja desativado.

Estas são as mudanças mais importantes nesta versão. Se você quiser dar uma olhada melhor em todos os pequenos detalhes e outras melhorias legais que implementamos, confira o comunicado da versão no blog do PhpStorm.