Novidades no PhpStorm 2023.2

Os destaques dessa importante atualização incluem:

  • Melhorias para genéricos em PHP
  • Suporte para Laravel Pint
  • Suporte nativo para asserções PHP
  • AI Assistant (acesso limitado)
  • Integração com o GitLab
  • Pesquisa de texto no Search Everywhere

AI Assistant Acesso limitado

Uma adição importante nessa versão é o AI Assistant, projetado para estender sua programação com recursos de IA. Com seu conjunto inicial de recursos, você já pode conversar com o AI Assistant e pedir que ele faça coisas como escrever comentários de documentação automaticamente para você, sugerir nomes, gerar mensagens de commit e muito mais.

Chat com IA

Chat com IA

Use a janela de ferramentas AI Assistant para se comunicar com o LLM (Large Language Model), fazer perguntas ou obter ajuda com um trecho de código. O PhpStorm fornecerá contexto específico do projeto, como o nível da linguagem PHP e a framework usada no seu projeto. Quando estiver satisfeito com o código resultante gerado pela IA, clique em Insert Snippet at Caret para colar o código no editor ou simplesmente copie-o.

AI Actions

AI Actions

O menu de contexto Alt+Enter agora apresenta a opção AI Actions, que inclui várias tarefas que o AI Assistant pode ajudar você a realizar.

Documentação de código

Documentação de código

O AI Assistant também pode gerar documentação para você. Pressione Alt+Enter, selecione o menu AI Actions e escolha Write Documentation. Como alternativa, o AI Assistant tentará explicar seu código por meio do chat.

Geração de mensagens de commit

Geração de mensagens de commit

A caixa de diálogo da mensagem de commit agora tem um botão Generate Commit Message with AI Assistant. Clique nele para enviar os diffs de suas alterações ao LLM, que gerará uma mensagem de commit descrevendo suas alterações.

Como acessar

Como acessar

O AI Assistant é alimentado pelo serviço de IA da JetBrains. Para acessar os recursos de IA, você precisará instalar manualmente o plug-in AI Assistant e fazer login no serviço de IA da JetBrains com sua conta da JetBrains. A maneira mais simples de fazer isso é clicar no ícone More tool windows na barra de ferramentas, selecionar AI Assistant e seguir as instruções.

Observe também que o acesso ao AI Assistant pode estar limitado por uma lista de espera. Você pode encontrar mais informações sobre como o AI Assistant funciona, além de detalhes sobre como lidamos com seu código e seus dados, nesta postagem do nosso blog.

Incentivamos você a experimentar esses novos recursos de IA e nos enviar suas ideias e sugestões. Para fazer isso, basta clicar em Share your feedback na janela de ferramentas AI Assistant. Você também pode registrar bugs do AI Assistant no YouTrack.

PHP

Genéricos em PHP

Nova refatoração Rename generic

Nova refatoração Rename generic

Pressione Shift+F6 enquanto estiver em um tipo genérico para começar a renomeá-lo, e o PhpStorm atualizará automaticamente o nome em toda a sua base de código.

Outra maneira de fazer isso é pressionando Ctrl+T e escolhendo Rename.

Suporte para o tipo `static` em genéricos

Suporte para o tipo static em genéricos

Um dos recursos mais esperados nessa área é o suporte para referências estáticas em templates genéricos.

Finalmente o implementamos neste lançamento, mas continuaremos a trabalhar para tornar o suporte a genéricos PHP o melhor possível no futuro.

Suporte para @mixin com templates

Suporte para @mixin com templates

Com anotações @mixin genéricas, você pode se beneficiar totalmente do decorador e de outros padrões para injetar comportamento em objetos. O PhpStorm agora fornece complementação de código para eles, quando aplicável.

Chega de geração de PHPDocs redundantes

Chega de geração de PHPDocs redundantes

O PhpStorm agora descarta declarações redundantes de blocos PHPDoc gerados automaticamente em um número maior de suas ações e gera relatórios sobre tags PHPDoc redundantes específicas em comentários de documentos.

Para getters e setters gerados, o PhpStorm agora adiciona comentários PHPDoc somente quando não há tipos declarados.

Para invocar a geração de métodos getter e setter, use a ação de intenção Add getter/setter (Alt+Enter) ou a ação Generate code (Alt+Insert).

Suporte embarcado para Laravel Pint

Suporte embarcado para Laravel Pint

PhpStorm has added Laravel Pint to the list of supported quality tools. Problemas de estilo de código relatados pelo Laravel Pint agora podem ser tratados como inspeções de código do PhpStorm.

Para configurar a integração com o Laravel Pint, acesse Settings | PHP | Quality Tools e expanda a seção Laravel Pint.

Aqui, você também pode definir o Laravel Pint como seu formatador externo de preferência. Isso permite a correção de todos os problemas detectados pelo Laravel Pint de uma só vez com a ação Reformat Code (Ctrl+Alt+L).

Para ativar o Laravel Pint como uma inspeção do PhpStorm, acesse Settings | Editor | Inspections e marque a caixa de seleção para Laravel Pint validation em PHP | Quality Tools.

Com a inspeção ativada, os problemas detectados pelo Laravel Pint serão realçados em qualquer arquivo PHP aberto ou relatados na janela de ferramentas Problems.

Inspeções para asserções PHP

Inspeções para asserções PHP

Com este lançamento, estendemos a lógica de insight de código para abranger asserções PHP.

O PhpStorm agora detecta e realça asserções que são redundantes por serem sempre verdadeiras ou sempre falsas. This is available for PHP’s built-in assert() constructs, PHPUnit’s assertion methods, and methods from the webmozart/assert and beberlei/assert libraries.

Experiência do usuário

Cabeçalhos de projeto coloridos na nova interface de usuário

Cabeçalhos de projeto coloridos na nova interface de usuário

Agora, você pode atribuir uma cor e um ícone exclusivos a cada um dos seus projetos, tornando mais fácil diferenciá-los em seu espaço de trabalho.

Os cabeçalhos vêm com cores predefinidas por padrão, mas agora você pode personalizá-las. Basta clicar com o botão direito do mouse em um cabeçalho, selecionar a opção Change Toolbar Color e escolher a cor desejada.

Pesquisa de texto no Search Everywhere

Pesquisa de texto no Search Everywhere

O Search Everywhere (Shift duplo) é usado para pesquisar arquivos, classes, métodos, ações e configurações.

Agora, ele inclui recursos de pesquisa de texto semelhantes aos de Find in Files. Os resultados de pesquisas de texto são exibidos quando há poucos ou nenhum outro resultado de pesquisa disponível para uma determinada consulta.

Melhor personalização da barra de ferramentas principal

Melhor personalização da barra de ferramentas principal

Na nova UI, agora você pode usar um menu suspenso para escolher rapidamente as ações que deseja adicionar à barra de ferramentas.

Clique com o botão direito do mouse em qualquer widget, selecione Add to Main Toolbar e explore as opções disponíveis.

Menu de hambúrguer reformulado na barra de ferramentas principal no Windows e no Linux

Menu de hambúrguer reformulado na barra de ferramentas principal no Windows e no Linux

Reformulamos o comportamento do menu de hambúrguer na nova UI, localizado na barra de ferramentas principal para o Windows e o Linux. Ao se clicar no ícone do menu, agora os elementos aparecem horizontalmente sobre a barra de ferramentas.

Também há uma nova opção de tornar esse menu uma barra de ferramentas separada. Para isso, acesse View | Appearance | Main menu as a Separate Toolbar.

Tema Light with Light Header na nova UI

Tema Light with Light Header na nova UI

Estamos apresentando um tema alternativo Light with Light Header, que apresenta cores claras correspondentes para cabeçalhos de janela, dicas de ferramentas e balões de notificação.

Afixar configurações de execução

Afixar configurações de execução

Para adicionar uma configuração de execução à seção Pinned, abra o menu de três pontos verticais próximo ao nome da configuração e selecione Pin. Você pode reorganizar facilmente várias configurações afixadas arrastando-as e soltando-as conforme necessário.

Classificar arquivos por hora de modificação na exibição Project

Ordenação de arquivos pela data de modificação na visualização Project

Agora, você pode organizar seus arquivos na exibição Project com base no horário de modificação. Para habilitar esse recurso, abra o menu de três pontos verticais na exibição Project e selecione Tree Appearance | Sort by Modification Time.

Melhorias no cliente HTTP

Prévias da UI do Redoc para arquivos OpenAPI e Swagger

Prévias da UI do Redoc para arquivos OpenAPI e Swagger

Agora, você pode alternar entre a UI Redoc e Swagger para visualizar sua documentação do OpenAPI.

Com a integração com o Redoc, você pode acessar o console Try it diretamente do PhpStorm e usá-lo para definir parâmetros e enviar solicitações à sua API.

Suporte a GraphQL e WebSocket na CLI do cliente HTTP

Suporte a GraphQL e WebSocket na CLI do cliente HTTP

Você pode executar arquivos .http como solicitações com uma CLI de cliente HTTP especial.

A partir deste lançamento, a ferramenta agora é capaz de interagir com APIs GraphQL e estabelecer conexões WebSocket com serviços.

Suporte a importações de JavaScript no cliente HTTP

Suporte a importações de JavaScript no cliente HTTP

Agora, é possível compartilhar o código JavaScript comum para manipuladores de solicitações do cliente HTTP por meio de módulos importados.

VCS / Git / GitLab

Suporte para Merge Requests do GitLab

Suporte para Merge Requests do GitLab

O PhpStorm 2023.2 apresenta integração inicial com o GitLab, permitindo que você trabalhe com Merge Requests diretamente do IDE.

Commit de alterações linha por linha

Commit de alterações linha por linha

O PhpStorm apresenta um novo nível de granularidade do commit, permitindo que você faça commit seletivo de apenas linhas específicas de alterações em blocos de código.

Abra o diff do arquivo, selecione as linhas dentro do bloco editado e chame Include these lines into commit no menu de contexto. Você verá caixas de seleção para cada linha, que você pode marcar ou deixar desmarcadas.

Suporte LSP para desenvolvedores de plug-ins

Algumas linguagens e tecnologias podem (ainda) não ter suporte nativo no PhpStorm, mas pode haver um servidor de linguagem que possa fornecer suporte para elas. É por isso que possibilitamos aos desenvolvedores de plug-in usar a API LSP e integrar um determinado servidor LSP.

Se você tiver criado a sua própria linguagem de programação ou framework, você pode ter suporte a ela no IDE escrevendo um servidor LSP e um plug-in.

No momento, o suporte a LSP inclui o realce de erros e avisos, correções rápidas, complementação de código e navegação até a declaração.

JetBrains Qodana no pacote

O PhpStorm 2023.2 integra a plataforma de qualidade de código Qodana – nosso mecanismo de análise estática inteligente projetado para atender a qualquer pipeline de CI/CD.

Você pode acionar a análise com apenas alguns cliques, visualizar a lista de problemas em todo o seu projeto e, em seguida, configurar o Qodana no seu sistema CI/CD preferido para estabelecer gates de qualidade e executar verificações no lado do servidor.

Além disso, uma vez que o Qodana esteja configurado no seu CI/CD, você poderá ver os resultados da análise no lado do servidor imediatamente, sem sair do seu IDE.

Desenvolvimento Web

Melhor formatação de erros em JavaScript e TypeScript

Melhor formatação de erros em JavaScript e TypeScript

Erros e avisos JavaScript e TypeScript agora serão formatados de maneira mais legível, facilitando a identificação de problemas no seu código.

Suporte para aninhamento de CSS

Suporte para aninhamento de CSS

We’ve implemented syntax support and an inspection that alerts you if a CSS nested selector starts with an identifier or functional notation.

Suporte para o Vue Language Server

Suporte para o Vue Language Server

O suporte para o Vue Language Server (VLS), também conhecido como Volar, fornece detecção de erros mais precisa e melhores informações de tipos na navegação rápida e nos pop-ups de documentação. Por padrão, o VLS será usado para TypeScript v5.0 e versões superiores. Acesse Settings | Languages & Frameworks | TypeScript | Vue para definir o serviço do Vue de forma a usar a integração com o VLS em todas as versões do TypeScript.