PhpStorm 2019.2: Propriedades digitadas no PHP 7.4, Duplicate Finder, EditorConfig, Shell Scripts e mais



Olá pessoal! Temos o prazer de apresentar o segundo grande lançamento do PhpStorm este ano!


Uma visão geral do lançamento pode ser encontrada na página " O que há de novo ". E sob o corte, uma análise detalhada de todas as mudanças visíveis e novos recursos. (Cuidado - muitas fotos!)


Você pode baixar a nova versão no site ou usando o App Toolbox . Como sempre, está disponível uma avaliação de 30 dias. A versão completa pode ser usada por titulares de uma assinatura ativa do pacote PhpStorm ou All Products, bem como estudantes e desenvolvedores gratuitos de projetos de código aberto.



PHP 7.4: propriedades digitadas


O PHP 7.4 promete ser a versão mais interessante e rica em recursos desde o PHP 7.0! Veja todos os RFCs aceitos nele .


O recurso mais esperado é, obviamente, as propriedades digitadas , e o PhpStorm 2019.2 já as suporta totalmente! Incluindo luz de fundo, saída e resolução de tipo, bem como todos os tipos de verificações.


Se você tentar colocar algo na propriedade, o PhpStorm o alertará imediatamente sobre isso.



Mas, a fim de se preparar para a migração para o PHP 7.4, que será lançado no final de novembro, o PhpStorm possui correções rápidas. Para declarar um tipo, você pode pressionar Alt+Enter em uma propriedade sem um tipo e selecionar Adicionar tipo declarado para o campo . O PhpStorm determinará o tipo de uma propriedade com base nas informações do PHPDoc, no valor padrão ou na declaração do tipo de argumento se a propriedade for injetada por meio de um construtor.



?? = operador (atribuição de coalescência nula)


O novo operador de atribuição de verificação nula curta é bastante útil para expressões volumosas.


No PhpStorm, é claro, a sintaxe é suportada, mas ainda há uma solução rápida Alt+Enter para substituir ?? sempre que possível:



O operador de descompressão (...) em matrizes


O PHP suporta argumentos de desempacotamento usando um operador desde a versão 5.6. Na próxima versão do PHP, o operador pode ser usado em matrizes:



O PhpStorm analisará o uso do operador para verificar se está descompactado apenas matrizes ou objetos atravessáveis ​​e não tente fazer por engano algo que não é suportado pelo interpretador PHP:



Na próxima versão do PhpStorm 2019.3, planejamos implementar suporte completo e correções rápidas para todos os novos recursos do PHP 7.4, incluindo funções de seta, delimitadores em literais numéricos, etc.

Injeção automática de expressões regulares em PHP


Nas versões anteriores do PhpStorm, as expressões regulares no código PHP não eram destacadas por padrão e eram exibidas como seqüências regulares. Obviamente, você pode implementar a linguagem RegExp manualmente, mas não o fará durante o projeto.


O PhpStorm 2019.2 adiciona suporte completo para usuários regulares em PHP! Isso significa que, onde preg_*, funções preg_*, são usadas no código preg_*, modelos serão destacados e verificados quanto à validade.



Além disso, agora você pode testar a expressão regular diretamente no IDE! Passe o mouse sobre o modelo, pressione Alt+Enter e chame Verificar RegExp .



Destaque de código duplicado em tempo real


A localização de duplicatas no PhpStorm já existe há algum tempo, no menu Código → Localizar duplicatas. Se você ainda não experimentou, tente - e surpreenda-se com quantas repetições podem existir no projeto!


Nesta versão, a análise de duplicação atingiu um novo nível e funciona rapidamente no editor. Se você repetidamente copiou ou acidentalmente escreveu as mesmas peças, saberá instantaneamente.


Você pode ir para outra duplicata ou visualizar tudo em uma lista em uma janela separada:



A propósito, esses são bons candidatos à refatoração de Extract .

A nova inspeção é chamada de fragmento de código duplicado e é ativada por padrão. O limite de sensibilidade pode ser definido nas Preferências | Editor Inspeções Geral Fragmento de código duplicado -> PHP . E em Preferências | Editor Duplicatas, você pode definir quais elementos serão ignorados ao pesquisar por duplicatas; por exemplo, você pode ignorar nomes diferentes de variáveis, métodos ou propriedades, bem como valores constantes.


Suporte ao formato PHPT


Deseja contribuir com o próprio PHP e ingressar no PHP Internals? A melhor maneira é começar com documentação e testes! Felizmente, você não precisa conhecer C. Para isso, os testes para PHP são gravados em arquivos .phpt especiais. De fato, este é um arquivo de texto, dividido em várias seções, algumas das quais podem conter código PHP.


Portanto, no PhpStorm 2019.2 também há suporte para arquivos phpt! As seções são destacadas, PHP e INI são implementados automaticamente quando necessário, as transições para arquivos externos nas seções correspondentes funcionam.



Mais informações sobre como escrever testes para o PHP estão aqui: Tutoriais do PHP TestFest , Livro de PHP do Internals e qa.php.net .


Executando o Composer através de qualquer interpretador PHP


Anteriormente, para executar o Composer, você sempre precisava de um intérprete PHP local. O problema é que ele pode não existir ou o ambiente pode não corresponder à produção. Agora, no PhpStorm 2019.2, você pode executar o Composer através de qualquer intérprete configurado no IDE. Por exemplo, através do Docker, Docker-componha, Vagrant ou, digamos, um servidor remoto via SSH.


Para experimentar esse recurso, selecione Intérprete remoto nas Preferências | Idiomas e estruturas | Php | Compositor



Selecione um intérprete existente ou adicione um novo!


Correções rápidas


Dividimos a lista em várias linhas e vice-versa


De acordo com o PSR-2 , uma linha com mais de 80 caracteres deve ser dividida em várias linhas, cada uma com menos de 80 caracteres. Portanto, se você tiver uma matriz grande ou os argumentos / parâmetros da função não couberem na tela, pressione Alt+Enter e selecione Dividir valores separados por vírgula em várias linhas:



Se de repente, como resultado da refatoração, a lista ficar mais curta e se encaixar em uma linha, a ação inversa também estará disponível: Junte valores separados por vírgula em uma única linha .


A propósito, aqui você pode precisar ajustar rapidamente as configurações de estilo do código. Para não procurar as opções necessárias por um longo tempo, selecione este trecho de código, pressione Alt+Enter e chame Ajustar configurações de estilo de código . O PhpStorm oferecerá a alteração apenas das opções relevantes para as linhas selecionadas:



Alternar construção


Implementamos a capacidade de adicionar rapidamente ramificações para alternar projetos. Pressione Alt+Enter na expressão do caso sem o corpo e chame Copy branch 'switch' .


Não se esqueça de editar o ramo copiado, caso contrário, o PhpStorm destacará a parte repetida:



O PhpStorm 2019.2 também avisa se não houver ramificação padrão no switch , e você também pode adicioná-lo usando uma correção rápida.


Manipulação de String


O PhpStorm ajudará nas operações rotineiras de strings. Tudo o que você tem a ver com a sequência - divida-a em pedaços, altere as aspas, converta a concatenação em sprintf ou interpolação ou qualquer outra coisa - pressione Alt+Enter na sequência e selecione a ação desejada na lista.


Nesta versão, adicionamos alguns chips novos a esta lista.


Suponha que você tenha uma expressão longa no sprintf e precise adicionar outro parâmetro em vez de uma substring. Selecione-o, pressione Alt+Enter , selecione Extrair parte da string selecionada como argumento da função de formato , e o PhpStorm colocará o parâmetro no lugar certo:



Você também pode separar a substring por concatenação:



Visualização para pesquisa estrutural


A pesquisa estrutural, ou SSR, é uma ferramenta poderosa que permite pesquisar partes do código não apenas como texto, mas também como pequenas árvores de sintaxe, enquanto indica tipos de nós ou outros filtros. Experimente: Editar -> Encontrar -> Pesquisar Estruturalmente ...


O problema com a pesquisa estrutural é que descrever um padrão de pesquisa pode ser uma tarefa não trivial. Felizmente, no PhpStorm 2019.2, agora você pode ver o destaque em tempo real no editor. Não há necessidade de executar a pesquisa repetidamente para depurar o modelo.


Imagine, por exemplo, que você deseja encontrar todas as chamadas para um método específico de uma classe, mas apenas aquelas nas quais um objeto de outra classe específica é passado como parâmetro. Será difícil encontrar isso com uma pesquisa regular, mas com um SSR - de cada vez!



Cliente HTTP


Suporte ao formato CURL


Agora, quase todas as ferramentas de desenvolvimento e documentação da Web oferecem a capacidade de copiar uma consulta como uma string cURL.


Agora esta linha pode ser usada no PhpStorm. Crie um arquivo com a extensão .http ou um novo arquivo de rascunho de solicitação HTTP usando o atalho de teclado Cmd+Shift+N (Ctrl+Shift+Alt+Insert) e cole a string de consulta cURL. Ele será convertido automaticamente em uma consulta completa e você poderá experimentar convenientemente cabeçalhos e outros parâmetros de consulta.



O cliente HTTP armazena cookies


Digamos que você teste um serviço e faça uma solicitação para autenticação, e na próxima solicitação chame um terminal particular. Anteriormente, um cookie com informações da sessão da primeira solicitação seria perdido. E em 2019.2 todos os cookies são armazenados e transmitidos em solicitações subsequentes.



Se você não deseja que os cookies sejam salvos, use a tag @no-cookie-jar para uma solicitação específica.


Controle de versão


Uma nova maneira de se comprometer sem diálogo


Suponha que você altere vários arquivos em diferentes pastas de um projeto. Para confirmá-las, vá para a guia Alterações Locais da janela Controle de Versão , selecione os arquivos necessários e chame o diálogo de confirmação. Neste ponto, tudo está bloqueado por uma janela pop-up e você não pode ver o projeto.


No PhpStorm 2019.2, você pode confirmar diretamente na guia Alterações locais .

Agora, trabalhando no commit, você pode visualizar o projeto inteiro, o histórico e, em geral, fazer qualquer coisa no IDE.



O recurso está desativado por padrão. Para experimentá-lo, marque “Confirmar com as alterações locais sem mostrar uma caixa de diálogo” em Preferências | Controle de versão | Confirmar caixa de diálogo.


Lembretes de arquivos relacionados


Quando você faz uma confirmação, o PhpStorm 2019.2 pode solicitar que você adicione arquivos que costumavam mudar frequentemente, juntamente com aqueles que você já selecionou para a confirmação.



Trabalho aprimorado com .gitignore


O PhpStorm suporta .gitignore e destaca arquivos ignorados na visualização Projeto .


Tornou-se um pouco mais fácil adicionar ao .gitignore . Isso pode ser feito na janela Controle de versão chamando Adicionar a .gitignore no menu de contexto em arquivos que ainda não foram adicionados ao sistema de controle de versão.



O arquivo .gitignore agora tem conclusão do caminho e, com Cmd+click arquivo será destacado na visualização Projeto .



Você pode ocultar colunas de autor, dados ou hash no log.



Comparando o estado atual com qualquer ramificação


Para fazer isso, basta chamar o comando Show Diff with Working Tree no pop-up Git Branches , que é mostrado clicando no nome do ramo atual no canto inferior direito.



Histórico do diretório na Visualização do Projeto


Você pode selecionar várias pastas no Project View e ver o histórico de alterações para elas usando o Git | Mostrar Histórico no menu de contexto.



Docker


Movemos o Docker para a nova janela Serviços . O objetivo desta janela é coletar todas as conexões e processos em execução em um único local. Até agora, por padrão, o PhpStorm inclui conexões com o Docker e o banco de dados. Você também pode adicionar configurações de Executar / Depurar à janela Serviços . Está disponível na seção Configurações disponíveis na seção Serviços | Editar configurações ...


Todos os serviços são exibidos como nós, mas cada um deles pode ser criado em uma guia separada, chamando Mostrar na guia Nova ou simplesmente arrastando o nó com o título da janela Serviços .



Exibir sistema de arquivos do contêiner do Docker


Você pode navegar pelo conteúdo do contêiner na guia Arquivos .



O editor


Conclusão do código de digitação


Se você escreveu de repente funtcion ou function vez de function , não é assustador, porque o complemento funcionará de qualquer maneira, pois reconhece esse tipo de erro de digitação.



Isso funciona em todos os idiomas e em todos os caracteres - palavras-chave, classes, funções, propriedades, métodos, etc.


Configuração de comportamento 'Mover cursor para a próxima palavra'


Você pode escolher onde o cursor será colocado ao mover-se pelas palavras.Veja a seção Movimento do cursor em Preferências | Editor Geral


<


Vá além de colchetes e aspas ao pressionar Tab


O chip antigo agora está ativado por padrão. Quando você digita e pressiona Tab, em vez de adicionar um caractere de tabulação, o cursor se move para além das aspas e parênteses. Para desativar esse recurso, desmarque a caixa de seleção Ir para fora do colchete / citação com Tab ao digitar na caixa de seleção Preferências | Editor Geral Teclas inteligentes



O código destacado é colocado entre aspas ou colchetes automaticamente


Outro recurso super útil agora está ativado por padrão. Quando você clica em uma citação (ou colchete) para selecionar um trecho de código, as aspas (ou colchetes) são adicionadas automaticamente no início e no final da seleção.



Se você não gosta desse comportamento, pode desativá-lo marcando a seleção Surround ao digitar citação ou chave na seção Preferências | Editor Geral Teclas inteligentes


Novo layout padrão no macOS


Alteramos o layout padrão no macOS do Mac OS X para o macOS 10.5+. Também renomeamos os layouts: o Mac OS X 10.5 agora é chamado de Padrão para o macOS e o antigo Mac OS X agora é o IntelliJ IDEA Classic.


Destaque de sintaxe para mais de 20 idiomas


Se o seu projeto possui arquivos em linguagens de programação diferentes de PHP e JavaScript, então o PhpStorm 2019.2 ficará agradavelmente surpreso com o destaque da sintaxe para Python, Ruby, Go e várias outras linguagens. Isso funciona imediatamente e não requer configurações adicionais.


Com isso, queremos melhorar a experiência de usar o PhpStorm para usuários que às vezes precisam procurar código em outros idiomas. O PhpStorm ainda é principalmente um ambiente de desenvolvimento PHP e web , portanto, não planejamos estender o suporte de outros idiomas além do escopo de destaque.



O destaque da sintaxe para idiomas adicionais é baseado nas gramáticas do TextMate. Veja a lista completa de idiomas suportados fora da caixa em Preferências | Editor Pacotes TextMate .


Scripts de shell


No PhpStorm 2019.2, implementamos amplo suporte para scripts de shell, incluindo adições de caminho, refatoração de renomeação, geração de código ( Cmd+N/Alt+Insert) e um pacote de modelos Cmd+J/Ctrl+J) ( Cmd+J/Ctrl+J) .



Também implementou integração com várias ferramentas externas.


Para procurar por possíveis problemas nos scripts, o PhpStorm sugerirá a instalação do Shellcheck , que encontra muitos problemas e fornece soluções rápidas para eles.


Também no PhpStorm 2019.2, ele se integra à ferramenta mvdan / sh para formatar scripts de shell. Quando você chama o Reformat Code pela primeira vez, o IDE solicita que você o instale e, em seguida, formate-o corretamente.


E, finalmente, há integração com o site Explainshell . Você pode selecionar qualquer comando, pressione Alt+Enter e selecione o shell Explain . O IDE será redirecionado para o Explainshell , onde você pode ver o que o conjunto selecionado significa. Quando você passa o mouse sobre um comando diretamente no IDE, uma ajuda também é exibida.



EditorConfig


Ao adicionar o arquivo .editorconfig , você torna o desenvolvimento da equipe mais agradável, pois determinadas opções de estilo funcionam da mesma maneira para todos, independentemente do editor usado.


Anteriormente, no PhpStorm, era necessário instalar o plugin EditorConfig, mas em 2019.2 ele está disponível imediatamente e não são necessárias etapas adicionais.


Você pode definir configurações diferentes para diferentes subpastas no projeto. Basta criar arquivos .editorconfig nas pastas necessárias - pode haver tantos deles no projeto.


Você também pode definir as opções do PhpStorm! No arquivo .editconfig!

Além das opções padrão do EditorConfig, você pode configurar quase todas as opções de estilo específicas do PhpStorm. Anteriormente, eles só podiam ser configurados a partir da interface do usuário. Essas opções são indicadas pelo prefixo ij_ para diferir das opções padrão.



Se você criar um novo arquivo .editorconfig no Project View , o PhpStorm solicitará que você escolha as opções a serem incluídas no arquivo criado. Eles serão adicionados comentados e os necessários podem ser descomentados e alterados.



Aparência


Mais informações no Project View


Você pode ativar a exibição do tamanho do arquivo e da data de modificação na Visualização do Projeto usando Exibir -> Descrições no local .



Um novo tipo de dica de ferramenta de inspeção


A dica de ferramenta agora não apenas descreve o problema, mas também oferece a primeira correção da lista. Para aplicá-lo instantaneamente, mesmo sem uma dica ou clique, pressione Alt+Shift+Enter . Para ver todas as correções disponíveis, pressione Alt+Enter .



UI atualizada no Windows


Nova visão sem moldura no Windows 10:




O PhpStorm, como sempre, inclui todas as atualizações do WebStorm e do DataGrip. Uma lista completa de alterações pode ser encontrada em notas de versão muito grandes.


E, finalmente, um pequeno vídeo (em inglês) com uma demonstração dos principais recursos do lançamento:



Isso é tudo de uma vez. Obrigado por ler até o fim! Perguntas, desejos, relatórios de bugs e apenas pensamentos expressos nos comentários! Teremos o maior prazer em responder.


Sua equipe JetBrains PhpStorm

Source: https://habr.com/ru/post/pt461449/


All Articles