Novidades no IntelliJ IDEA 2019.1

Temas

Personalização de temas

Temos notícias empolgantes para você! O IntelliJ IDEA 2019.1 acompanha suporte oficial para temas personalizados! Agora, você pode criar seu próprio tema com facilidade! Saiba mais.

Criamos alguns temas inéditos para você começar. Adicione mais cores ao seu IDE imediatamente, baixando um dos novos temas e selecionando-o como o seu tema nas configurações de aparência! Saiba mais.

Java

Suporte para Switch Expressions do Java 12 (Prévia)

O IntelliJ IDEA 2019.1 inclui suporte para o recurso Switch Expressions do Java 12 (Prévia), de acordo com o JEP 325.

Temos várias novas inspeções e correções rápidas para ajudar você a começar. O IDE é capaz de detectar qualquer instrução "switch" que possa ser substituída por uma instrução ou expressão "switch" aprimorada e fornece uma correção rápida para a conversão. O IDE também detectará branches duplicados em "switch" e oferecerá uma correção rápida para os mesclar. Isso tudo é somente a ponta do iceberg.

Saiba mais

Melhorias na refatoração "Extract variable"

A refatoração "Extract variable" foi significativamente melhorada e agora preserva a semântica de maneira ainda melhor do que antes. O IDE pode extrair uma variável até mesmo do inicializador de campo, e a refatoração "Extract variable" pode converter um ternário em "if" automaticamente quando a condição é importante. A condiçãoé considerada importante quando tem uma verificação nula ou a verificação "instanceof".

Realce preciso de advertências em expressões ternárias

O IntelliJ IDEA 2019.1 garante um realce mais preciso de advertências para expressões ternárias. Ele apenas realçará uma condição em que uma violação de nulidade for detectada (enquanto antes ele realçava a expressão ternária inteira, mesmo se a nulidade fosse violada em um único branch).

Graças a esse novo recurso, o realce é mais preciso em expressões de alternância também.

Melhor análise de operações matemáticas

A análise do fluxo de dados pode rastrear o resultado de operações matemáticas e usa essas informações para avisá-lo sobre condições que são sempre verdadeiras ou falsas. Melhoramos a análise de muitas operações matemáticas, incluindo operações de multiplicação, resto e bit a bit.

Inferência da pureza do construtor com base na origem

O IntelliJ IDEA 2019.1 melhora o suporte para anotações @Contract. Agora, ele pode inferir automaticamente a pureza dos construtores com base na origem.

Navegação do rastreamento de pilha Java até a posição relevante dentro de uma linha

Quando você clica no rastreamento de pilha Java, o IDE tenta determinar o local exato dentro da linha para posicionar o cursor. Antes, ele apenas levava você até a primeira coluna da linha correspondente.

Detecção de branches de "switch" duplicados

Agora, o IDE agora pode detectar branches de "switch" duplicados e fornece uma correção rápida para mesclar esses branches.

Gradle

Delegação de ações de compilação e execução ao Gradle definidas para cada projeto Gradle

Agora, é possível delegar ações de compilação e execução ao Gradle para cada projeto individualmente. Configure essa opção para cada projeto Gradle se o seu projeto IntelliJ IDEA incluir vários projetos Gradle. Você pode até mesmo definir valores diferentes para o executor de testes e o executor de aplicativo para o mesmo projeto.

No IntelliJ IDEA 2019.1, as ações de compilação e execução são delegadas ao Gradle por padrão para novos projetos Gradle.

Seleção adequada de uma tarefa de teste Gradle para execução a partir do editor

Com o IntelliJ IDEA 2019,1, melhoramos o suporte para projetos com vários conjuntos de origens Gradle nos quais a execução dos testes é delegada ao Gradle. Agora, o IDE resolve corretamente qual tarefa deve ser executada quando um teste específico tiver sido executado. Para alternativas com várias opções, o IDE fornece uma lista de todas as tarefas que podem ser executadas para esse teste selecionado.

O HotSwap funciona quando ações de compilação são delegadas ao Gradle ou ao Maven

Agora, quando você está depurando com as ações de compilação delegadas ao Gradle, o HotSwap é acionado, e a criação de um projeto recarrega classes.

Além disso, o HotSwap funciona quando ações de compilação são delegadas ao Maven.

Maven

Saída da compilação Maven relatada na janela de ferramentas Build

Por conveniência, toda a saída da compilação Maven agora aparece em só lugar: a janela de ferramentas Build. Não há mais necessário verificar nas janelas Run ou Messages. Você também pode alternar a exibição e apresentar a saída da compilação como um log.

Melhores diagramas Maven

Os diagramas Maven foram melhorados e estendidos com novas opções. Você pode encontrar conflitos e dependências duplicadas facilmente usando "Show Conflicts/Duplicates". Para visualizar todos os caminhos para o nó, clique em "Show Paths: Root -> Selection".

Se você precisar visualizar apenas as dependências de um nó, selecione "Show Neighbors of Selected Nodes". Também é possível alternar o diagrama para a exibição sem bordas.

Controle de versão

Ações "Fixup" e "Squash" foram adicionadas ao log do VCS

Invoque ações "Fixup" e "Squash" no menu de contexto da guia VCS Log. Essas ações criarão submissões com as mensagens de submissão "fixup!" e "squash!" corretas .

Capacidade de escolher a dedo apenas alguns dos arquivos diretamente no log do VCS

Com o IntelliJ IDEA 2019.1, agora você pode escolher arquivos a dedo na submissão enquanto está no log do VCS. Basta invocar o menu de contexto e escolher a opção "Apply Selected Changes".

Indicação de submissões de entrada e saída

Existe agora a opção de ver a disponibilidade de submissões de entrada e saída para os branches individuais no pop-up Branches. Você precisa ativar a opção "Mark Branches that have incoming/outgoing commits in the Branches popup" em Preferences/Settings | Version Control | Git.

Arquivos armazenados excluídos podem ser restaurados

Agora, você pode visualizar todos os arquivos recém-excluídos e restaurar qualquer arquivo armazenado útil. Basta usar o novo nó "Recently Deleted" na guia Shelf da janela de ferramentas VCS.

Nova caixa de seleção "Uncheck all" para submissões parciais do Git

Para tornar as coisas ainda mais convenientes, adicionamos uma nova caixa de seleção "Uncheck all" ao painel Diff da caixa de diálogo Commit Changes e, agora, você pode facilmente desmarcar todos os blocos de código de uma só vez.

Modo para visualizar as iniciais do autor de anotações do VCS

Agora, você pode visualizar as iniciais do autor em vez do seu nome completo nas anotações do VCS. Clique com o botão direito do mouse na guia Annotation e selecione View | Names | Initials no menu de contexto.

Diff

Adição de conteúdo de arquivo à janela Blank Diff com ações de arrastar e soltar

Agora, é possível copiar e colar texto em uma janela Blank Diff arrastando um arquivo até ela.

Capacidade de trocar de lado entre arquivos comparados no visualizador de diferenças

Agora, você pode trocar de lado no visualizador de diferenças ao abri-lo com "Compare two files", "Compare with clipboard" ou "Blank Diff". Para alternar qual arquivo é mostrado à direita e qual é mostrado à esquerda, basta selecionar "Swap Sides".

A opção "Swap Sides" também está disponível para a comparação de diretórios.

Visualize a diferença por unidade de caractere

Agora, você pode ver a diferença por unidade de caractere, e não só por unidade de palavra, como ocorria antes no visualizador de diferenças. Isso pode ser muito útil quando o código-fonte tem uma linha de caracteres em alfabetos diferentes, por exemplo, em japonês.

Pop-up de localizações recentes

Conheça o inédito pop-up de navegação "Recent Locations", que exibe todas as localizações recém-visitadas e alteradas do código. Todas as localizações visitadas são cronologicamente ordenadas nesse pop-up, com a localização mais recententemente visitada no topo e as mais antigas na parte inferior. Para chamar o novo pop-up "Recent Locations", pressione Cmd-Shift-E/Ctrl-Shift-E.

Depurador de JVM

Suporte para "synchronized", "assert" e "switch" no avaliador do depurador

O avaliador do depurador agora oferece suporte a instruções "synchronized", "assert" e "switch".

Saia do bloco de código no depurador da JVM

Agora, é possível sair do bloco atual enquanto você está depurando o projeto Java. Essa nova ação está disponível no menu principal | Run.

Novo gesto do mouse "Executar até o ponteiro do mouse"

Agora, se você prefere usar o mouse no modo de depuração, pode focalizar sobre uma linha para que ela seja realçada pelo IDE. Em seguida, basta clicar em um número de linha para fazer com que o IDE realize a ação de executar até o cursor.

Scala

Realce de for-comprehensions

O IntelliJ IDEA 2019.1 oferece suporte aprimorado para for-comprehensions, incluindo realce de erros, dicas implícitas e ações "GoTo/Quick Definition/Quick Documentation".

Encontre usos para definições implícitas

Agora, o recurso "Find Usages" pode ser chamado em definições implícitas, métodos apply/unapply, métodos for-comprehension e tipos SAM (Single Abstract Method).

Dsecompilação para Java

Agora, mesmo que os arquivos .class Scala não tenham origens, você pode descompilá-los para Java.

Versão de Scalafmt personalizável

Com o IntelliJ IDEA v2018.2, adicionamos suporte ao formatador scalafmt e, com a versão mais recente, aprimoramos ainda mais essa capacidade. O IntelliJ IDEA não só permite usar uma versão personalizada do Scalafmt, como também o IDE pode baixar a versão necessária para você.

Plug-in HOCON separado

Extraímos o suporte ao HOCON para um repositório e um plug-in separados, que você pode instalar e desinstalar sob demanda.

Melhorias no realce de erros

Nesta versão, melhoramos significativamente o realce de erros no número de áreas, incluindo:

  • Unificação parcial e unificação de variáveis de tipo em geral.
  • Realce de construtores, chamadas para construtores particulares.
  • Plug-in de compilador Better-monadic-for: recurso `implicit0`.
  • Kind-projector: lambdas polimórficos em nível de valor.
  • Simulacrum: construtores de tipo de maior aridade.

Groovy

Suporte para a sintaxe Lambda ao estilo Java do Groovy 3.0

O IntelliJ IDEA 2019.1 oferece suporte ao recurso experimental do Groovy 3.0 – sintaxe Lambda ao estilo Java. O IDE fornece suporte de edição para ele, incluindo preenchimento de código, realce e inferência de tipos. As intenções e inspeções do Groovy também funcionarão corretamente dentro do corpo do lambda. Além disso, há formatação disponível para lambdas ao estilo Java, e você também pode depurar esses lambdas.

Kotlin

O plug-in Kotlin fornecido com o IDE foi atualizado para a versão v1.3.21

Modelo em tempo real para gerar "main" sem parâmetros

Começando com o Kotlin 1,3, você pode usar a função principal sem parâmetros. Na mesma proporção, com essa versão do IntelliJ IDEA, você pode criar o método principal sem parâmetros, usando o modelo em tempo real "main".

Agora, a abreviação padrão de "main" cria a nova versão do método principal. Se precisar transmitir alguns argumentos, use a abreviação "maina".

Melhorias na conversão de strings

A intenção "Convert concatenation to template" agora pode remover as chamadas .toString() desnecessárias em cada parâmetro.

Nova intenção para converter SAM como lambda para um objeto anônimo

Se você precisar converter uma construção usando lambdas com SAM em um objeto anônimo, use essa nova e prática ação de intenção.

Ação de intenção para melhorar o código de rotina conjunta

Quando você trabalha com rotinas conjuntas, o IntelliJ IDEA sugere a adição de um sufixo "Async" a uma função que retorna "Deferred".

JavaScript e TypeScript

Novas intenções para desestruturação de JavaScript

O IntelliJ IDEA 2019.1 acompanha um conjunto de novas refatorações e intenções para ajudar você a começar a usar a desestruturação no seu código JavaScript ou TypeScript.

Intenção para função de conversão com Promise em async/await

Altere uma função que retorna "promise" com chamadas .then() e .catch() em uma função assíncrona que usa a sintaxe "async/await". Para usar essa correção rápida, pressione Alt+Enter no nome da função e selecione "Convert to async function". Isso está disponível para TypeScript, JavaScript e Flow.

Documentação atualizada para CSS e HTML

A documentação rápida para propriedades CSS e tags HTML e o atributo (F1/Ctrl-Q) agora mostra uma breve descrição do MDN, incluindo sua compatibilidade com os navegadores mais populares.

Console depurador JavaScript aprimorado

O console depurador interativo nas janelas de ferramentas de depuração JavaScript e Node.js agora mostra objetos usando uma visualização em árvore e oferece suporte para a estilização mensagens de log com CSS e seu agrupamento usando console.group() e console.groupEnd(). Além disso, ele permite filtrar qualquer tipo de mensagem de log.

Docker

Capacidade de depurar dentro do contêiner do Docker

Agora, você pode anexar o depurador a um aplicativo Java em execução dentro de um contêiner do Docker. O IDE agora permite a depuração dentro de contêineres que são construídos a partir de um Dockerfile ou criados usando o Docker Compose (docker-compose.yml).

Kubernetes

Suporte a recursos externos

O IntelliJ IDEA 2019.1 oferece suporte a recursos externos, o que significa que, agora, você pode carregar uma especificação de definição de recurso personalizada a partir de fontes externas. No momento, isso apenas é possível a partir de arquivos locais. Para adicionar as especificações, acesse "Preferences/Settings | Languages & Frameworks | Kubernetes" e adicione o caminho à especificação de definição de recurso personalizada.

Refatoração de renomeação de gráficos em arquivos de recursos Helm

Agora, é possível usar a refatoração "Rename" no gráfico dos arquivos de modelo de recursos Helm. Lembre-se de que você precisa instalar o plug-in de modelo Go para habilitar esse suporte a arquivos de modelo de recursos Helm.

Editor

Opção para exportar suas configurações de estilo de código para JSON

Agora, é possível exportar todas as suas configurações de estilos de código, mesmo que elas correspondam às padrão, do IntelliJ IDEA para o JSON. Acesse "Preferences/Settings | Editor | Code Style" e selecione a opção "Export | IntelliJ IDEA code style JSON" no menu suspenso.

Capacidade de habilitar soft-wraps dependendo do tipo de arquivo

Soft-wraps podem ser limitados para tipos de arquivo específicos. Para isso, acesse "Preferences/Settings | Editor | General" e use o campo "Soft-wrap files".

Caixa de diálogo de configuração do mapa de teclas para o pressionamento de teclas Ctrl+Y no Windows

Quando você usa o pressionamento de teclas Ctrl+Y pela primeira vez no Windows, a caixa de diálogo Keymap Configuration é exibida, solicitando a atribuição do atalho ao comando "Delete Line" ou "Redo".

Mapa de teclas para o Sublime Text

Continuamos adicionando novos mapas de teclas pré-configurados ao IntelliJ IDEA e, com a v2019.1, acrescentamos o mapa de teclas para o Sublime Text. Acesse "Preferences /Settings | Keymap" e, na lista suspensa "Keymap", escolha "Sublime Text". É só isso! Agora, você pode usar atalhos do Sublime Text no IntelliJ IDEA.

Plug-in de mapa de teclas para o VS Code

Agora, você pode usar o mapa de teclas pré-configurado para o VS Code que nós disponibilizamos como um plug-in à parte! Instale esse plug-in e selecione o mapa de teclas para o VS Code em "Preferences /Settings | Keymap.

Suporte para a sintaxe Lambda ao estilo Java do Groovy 3.0

O IntelliJ IDEA 2019.1 oferece suporte ao recurso experimental do Groovy 3.0 – sintaxe Lambda ao estilo Java. O IDE fornece suporte de edição para ele, incluindo preenchimento de código, realce e inferência de tipos. As intenções e inspeções do Groovy também funcionarão corretamente dentro do corpo do lambda. Além disso, há formatação disponível para lambdas ao estilo Java, e você também pode depurar esses lambdas.

Spring Cloud Stream

Suporte de edição ao Spring Cloud Stream

O IntelliJ IDEA agora oferece suporte para edição avançada em projetos Spring Cloud Stream, como realce de sintaxe, inspeções, correções rápidas e preenchimento de código (incluindo preenchimento de nomes de vinculadores para valores e referências nos arquivos application.properties ou application.yml).

Navegação entre produtores e consumidores vinculados

Agora você pode navegar entre os manipuladores de mensagens de consumo e produção vinculados usando o ícone de medianiz. Lembre-se de que consumidores e produtores devem estar vinculados nos arquivos application.properties ou application.yml por meio da chave de configuração "spring.cloud.stream.bindings".

Thymeleaf

Suporte aprimorado para Thymeleaf

Agora, você pode navegar até fragmentos de modelos referenciados nos atributos "th: replace" e "th: include". O preenchimento de código e as refatorações "Rename" agora também funcionam para esses fragmentos incluídos e substituídos.

Ferramentas de banco de dados

Suporte para Greenplum, Vertica e Apache Hive

O IntelliJ IDEA oferece suporte aos seguintes novos bancos de dados:

  • Greenplum – um banco de dados de análise baseado no PostgreSQL.
  • Vertica – armazenamento orientado a colunas, projetado para lidar com grandes volumes de dados.
  • Apache Hive – um data warehouse desenvolvido com base no Apache Hadoop para fornecer consulta e análise de dados.

Melhorias na caixa de diálogo de conexão

Atualizamos a aparência da caixa de diálogo de conexão e adicionamos várias configurações importantes. Agora, você pode adicionar uma consulta SQL ao campo "startup script", que será executada todas as vezes que você estabelecer uma conexão. Além disso, você pode definir um tempo limite após o qual o IDE será desconectado automaticamente ou pode configurar um intervalo de tempo para executar uma consulta a cada N segundos a fim de manter a conexão ativa.