Novidades do GoLand

O GoLand 2021.3 tem suporte nativo para projetos Go em WSL, a refatoração Inline Function e suporte para desenvolvimento remoto no modo Beta.

A partir desta versão, o gofmt ao salvar está habilitado por default. O GoLand 2021.3 tem algumas melhorias para o depurador, como Delve para ARM64, a opção Show Types e muito mais.

Existem duas novas postfixes para conversão de strings em números, um novo template para testes de tabela com declarações testify e melhor complementação para valores em tags struct.

Como de costume, a nova versão do GoLand traz melhorias para o desenvolvimento Web e uma variedade de novos recursos para trabalhar com bancos de dados.

Se você prefere uma abordagem interativa de aprendizagem, conclua o tutorial What's New in GoLand 2021.3, disponível na tela Welcome.

Suporte para WSL

Criação de um projeto em WSL e escolha de um SDK em WSL

Adicionamos a capacidade de abrir um projeto em WSL e especificar um SDK localizado lá.

Se você criar um novo projeto (ou abrir um existente) em WSL, o GoLand dirá que, para esse projeto, é necessário usar um SDK Go em WSL. É possível baixar um SDK Go ou escolher um existente no subdiretório \\wsl$.

Formatador

O código é formatado quando o arquivo é salvo

gofmt ao salvar

A opção Reformat code, que permite executar o gofmt e o próprio formatador do GoLand ao salvar, agora está habilitada por default.

A janela pop-up mostra uma notificação sobre a formatação do código ao salvar

Como essa mudança pode surpreender alguns usuários, adicionamos uma notificação que será exibida uma vez em cada projeto. Você pode desligá-la clicando em Don’t show again.

Você pode clicar em Edit actions on save, e o IDE abrirá Settings | Tools | Actions on save, onde você pode gerenciar as configurações.

Refatorações

Inline Function e Inline Method

A refatoração Inline para funções e métodos já está disponível. Para experimentar, coloque o cursor sobre uma função, método ou chamada e pressione Ctrl + Alt + N.

Quando você invoca a refatoração Inline, uma janela pop-up é aberta com várias opções. Nesse pop-up, você também pode abrir a janela Refactoring Preview, que ajuda a encontrar todas as chamadas de um método ou uma função.

Preenchimento

A complementação de código sugere opções diferentes para valores em tags struct

Melhor tratamento de estilos de valores em tags struct

Melhoramos a forma de lidar com diferentes tipos de palavras compostas (camelCase, snake_case, etc.) quando você adiciona tags em campos struct.

Quando você preenche uma tag, o GoLand sugere uma lista com várias opções. Depois que você escolhe uma, o IDE lembra da sua escolha e sugere o mesmo estilo como primeiro na lista para outros campos nessa struct.

Preenchimento Postfix

Usando postfixes para converter strings em números

Novos postfixes para conversão de strings em números

Temos alguns novos postfixes para converter strings em números. Basta digitar um número entre aspas duplas e, em seguida, digitar um ponto. O GoLand sugerirá duas opções para processar esse número: parseInt e parseFloat.

Mostrar usos

Visualização do arquivo fonte ao usar a opção Show Usages

Visualização do código-fonte

O recurso Show Usages foi aprimorado e agora você pode ativar a visualização do código-fonte para um uso encontrado clicando no ícone de quadrado.

Alvos de execução

Configuração de pastas em um alvo remoto

Configuração de pastas para fontes e executáveis

Agora, você pode dar nomes significativos às pastas na máquina remota em que as fontes e os executáveis do seu projeto estão armazenados. Para configurar as pastas, acesse Run | Manage targets | Additional Settings.

Configurações de alvo de execução default para todo o projeto

Alvo de execução default para todo o projeto

Agora, é possível definir um alvo de execução default para todo o projeto. Acesse Run | Manage targets. Uma janela será aberta contendo a opção Project default target. Se você escolher um alvo específico para o projeto, todas as novas configurações serão criadas com esse alvo.

Configurações de proxy na janela de configuração SSH

Suporte de proxy para conexões SSH

Adicionamos a nova seção HTTP/SOCKS Proxy a SSH Configurations para você especificar um servidor proxy. Você pode encontrar essa seção em Settings | Tools | SSH Configurations. Como alternativa, a partir do projeto aberto, acesse Run | Manage Targets | ...

Depurador

Uma nova representação de interfaces nil no depurador

Melhor representação de interfaces nil

As interfaces no Go têm dois componentes, um tipo e um valor desse tipo. Para uma interface ser nil, ambos os componentes devem ser nil.

Se você tiver uma interface com um valor contendo um ponteiro nil para um int, essa interface não será igual a nil, porque o tipo interno não é nil*int). Isto pode ser confuso.

Para detectar esses casos, mudamos a forma como as interfaces são representadas na aba Variables da janela de ferramentas Debug. Por exemplo, se você tiver uma interface com tipo interno *int e valor nil, ela será exibida assim: {interface{} | *int} *int(nil).

A diferença entre como os nomes dos pacotes são representados nas versões 2021.2 e 2021.3

Nomes curtos de pacotes na aba Variables

O GoLand não exibe mais o nome completo do pacote na aba Variables do depurador. Agora, você verá apenas a última parte do nome completo.

Demonstrando como Show Types funciona

Ocultar/mostrar tipos de objetos

Se os tipos de objeto ocupam muito espaço na aba Variables, você pode clicar com o botão direito na área da aba e desativar a opção Show Types no menu exibido. Você pode ativá-la novamente selecionando-a de novo no mesmo menu.

Executável do Delve desenvolvido para o ARM64 agora disponível no GoLand

Delve para Linux ARM64

A partir desta versão, o GoLand inclui o Delve desenvolvido para a arquitetura ARM64, e a depuração no Linux ARM agora funciona de forma nativa.

Também aprimoramos as mensagens de erro quando o GoLand não inclui o Delve para arquiteturas específicas. O IDE agora informa explicitamente o que está errado.

Teste

Geração de código com asserções testify

Um template para asserções testify

Adicionamos um novo template para testes de tabela com asserções testify. Se você já usou assert em seu pacote, o GoLand gerará uma parte do código com asserções quando você pressionar Alt + Ins e escolher a opção necessária.

Novas correções rápidas

Uso de uma correção rápida para formatar uma string corretamente

Correção rápida para formatação de strings de erros

GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Pressione Alt + Enter, e o GoLand irá sugerir a correção do formato da string.

Uso de uma correção rápida para exportar tipos

Correção rápida Export type

Se você escreveu uma função exportada que retorna um tipo não exportado, o GoLand irá sugerir uma correção rápida para exportar esse tipo.

Outras alterações relacionadas ao Go

Uma janela pop-up mostra informações sobre context.TODO()

Inspeção context.TODO()

Adicionamos uma inspeção que realça os usos de context.TODO(). Você pode habilitá-la em Settings | Editor | Inspections. A inspeção servirá como um lembrete para alterar context.TODO() se não estiver claro qual Context deveria ter sido usado no momento da escrita.

O comentário TODO é adicionado quando a ação Implement Methods é usada

Comentário //TODO implement me

Adicionamos o comentário //TODO implement me para os templates gerados quando você usa a ação Implement Methods. Esses comentários especiais são destacados no editor, indexados e listados na janela da ferramenta TODO, permitindo que sirvam como lembretes sobre métodos não implementados.

Desenvolvimento remoto

Seção de desenvolvimento remoto na tela de boas-vindas do GoLand

Agora, o GoLand oferece suporte a uma versão Beta de workflows de desenvolvimento remoto.

É possível configurar workflows de desenvolvimento remoto diretamente na tela Welcome do GoLand. Como alternativa, você pode usar o JetBrains Gateway, nossa nova aplicação que serve como ponto de entrada para todos os seus back-ends remotos.

Encontre instruções sobre como iniciar o desenvolvimento remoto nesta página.

Cliente HTTP

Adicionando uma solicitação gRPC a um arquivo http

Suporte para solicitações gRPC

O cliente HTTP do GoLand agora oferece suporte a solicitações gRPC e fornece complementação para elas. Comece suas solicitações com a palavra-chave GRPC, e o cliente HTTP as tratará como solicitações gRPC.

Geração de uma solicitação gRPC clicando em um ícone de medianiz em um arquivo proto

Você pode gerar automaticamente uma solicitação gRPC no cliente HTTP clicando nos ícones de medianiz em seus arquivos .proto.

Execução de uma chamada de procedimento remoto de streaming de servidor

Atualmente, o cliente HTTP pode executar RPCs de streaming de servidor e unárias. Como em solicitações HTTP comuns, o corpo da solicitação e as respostas são arquivos JSON simples.

Existem várias outras melhorias no cliente HTTP sobre as quais você pode ler aqui.

Melhorias no VCS

Execução da ação Checkout and Rebase onto Current

Checkout and Rebase onto Current para branches remotos

A ação Checkout and Rebase onto Current permite que você faça o check-out do branch selecionado faça um rebase dele sobre um branch que já esteja em check-out. Agora, ela está disponível para branches remotos.

Execução da ação Push All up to Here

Nova ação Push All up to Here

Às vezes, você pode ter vários commits prontos para enviar enquanto outros ainda estão em andamento. Nesses casos, você pode querer fazer push apenas naqueles nas quais tem confiança.

Agora, você pode fazer push de commits até o commit selecionado na aba Log da janela de ferramentas Git. Para fazer isso, escolha o commit no qual você deseja parar, clique com o botão direito nele para abrir o menu de contexto e selecione a ação Push All up to Here.

Configurações de controle de versão

Configurações de VCS reorganizadas

Tornamos as configurações do VCS mais detectáveis e estruturadas. O nó Version Control em Settings agora lista todas as configurações disponíveis.

Melhorias na interface do usuário

Barra Evaluate expression na aba Variables

Evaluate expression na aba Variables

A funcionalidade Evaluate expression agora está disponível na aba Variables da janela de ferramentas Debug.

Divisão de abas na janela de ferramentas Run

Divida as abas na janela de ferramentas Run

Agora, você pode dividir a janela de ferramentas Run arrastando e soltando as abas na área realçada. Para desfazer a divisão da janela, clique com o botão direito no painel superior e selecione Unsplit no menu de contexto.

Uso da janela Bookmarks

Nova janela Bookmarks

Temos uma nova janela de ferramentas Bookmarks. A partir de agora, todos os arquivos e pastas marcados como importantes com o atalho F11 estarão localizados nessa janela.

Profiler

Comparação de dois snapshots e visualização da diferença no gráfico de flame

Visualizar diferenças em snapshots

Você pode visualizar a diferença entre os dois snapshots no gráfico de flame. Pressione Shift duas vezes e digite "Open Profiler Snapshots" na barra de pesquisa. Abra um snapshot da lista, repita as mesmas ações e abra outro.

Em seguida, clique no botão Compare With Baseline na aba de um dos snapshots. No menu, selecione o snapshot com o qual deseja comparar. Uma aba Diff separada será aberta com os resultados da comparação.

Terminal

Demonstração do suporte a cores de 24 bits no terminal integrado do Windows

ConPTY

GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.

Com o ConPTY, cores de 24 bits têm suporte no terminal incorporado.

Digitação no terminal do GoLand com suporte a Typeahead ao trabalhar em uma máquina remota

Typeahead

Antes, quando você digitava caracteres no terminal do GoLand enquanto trabalhava numa máquina remota, o IDE não conseguia exibir os caracteres tão rapidamente quanto numa máquina local por causa da latência.

Isto não é mais um problema, pois introduzimos o suporte para digitação antecipada. Nosso terminal integrado prevê modificações de texto e as exibe imediatamente em cinza claro.

Desenvolvimento Web

Download de módulos ES6 remotos usando uma correção rápida no caminho de importação em arquivos ES6

Suporte para URLs em instruções import

Você pode baixar módulos ES6 remotos usando uma correção rápida no caminho de importação em arquivos ES6. O módulo será baixado com todas as suas dependências. Para experimentar, coloque o cursor no caminho de importação, pressione Alt + Enter e selecione Download module.

Digitação de código em um arquivo html e aceitação da sugestão de complementação

Complementação de código aprimorada para HTML

Melhoramos o funcionamento da complementação de código em HTML. Sempre que você digitar um nome de tag ou uma abreviação no editor, ou chamar a complementação de código, o GoLand mostrará sugestões relevantes imediatamente.

Antes, ele só mostraria essas sugestões se você digitasse um sinal de menor (<) primeiro. A complementação de código para referências de entidade de caracteres também foi aprimorada.

Atualização de pacotes npm com a correção rápida "Update 'package name' to the latest version"

Nova inspeção para atualização de dependências

Você pode atualizar seus pacotes npm para a versão mais recente diretamente do editor. Abra o arquivo package.json, coloque o cursor na versão do pacote que você deseja atualizar, pressione Alt + Entere selecione Update … to the latest version.

Posicionamento de elementos num arquivo JavaScript em linhas separadas e de volta numa única linha

Posicionar elementos em várias linhas

O GoLand foi atualizado com uma ação de intenção para projetos JavaScript que permite colocar rapidamente elementos separados por vírgula em linhas separadas e, se necessário, de volta numa única linha.

Melhorias no banco de dados

Visualização agregada (Aggregate view) para um intervalo de células num banco de dados

Aggregate view para um intervalo de células

Adicionamos a capacidade de mostrar a Aggregate view para um intervalo de células. Basta selecionar o intervalo de células cuja exibição você deseja mostrar e depois clicar com o botão direito e selecionar Show Aggregate View. Um valor agregado é exibido na barra de status e você pode escolher o valor desejado.

Divisão da aba do editor

Abas de editores independentes

Se você dividir o editor e abrir a mesma tabela, os editores de dados serão completamente independentes. É possível definir diferentes opções de filtragem e ordenação para eles.

Nova inspeção para expressões booleanas em cláusulas WHERE e HAVING

Verificar se há expressões booleanas

Temos uma nova inspeção para expressões booleanas em cláusulas WHERE e HAVING.

Se a expressão não parecer explicitamente booleana, nós a realçaremos em amarelo e avisaremos antes de você executar tal consulta.

Isto funciona com ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite e Vertica. Em todos os outros bancos de dados, ela será realçada como um erro.

Navegação das células selecionadas para os dados relacionados

Navegação por chaves estrangeiras usando vários valores

No editor de dados, você pode selecionar vários valores e navegar até os dados correspondentes.

Um tipo de coluna num arquivo CSV é detectado e mostrado numa janela pop-up

Tipos de coluna automáticos em arquivos CSV

O GoLand detecta tipos de coluna em arquivos CSV, e agora você pode classificar os dados por um valor numérico. Antes, os dados nas colunas eram tratados como texto, e a classificação não funcionava conforme esperado.

Sugestões de complementação de código são mostradas para um operador de filtro MongoDB

MongoDB: Complementação para filter {} e sort {}

A complementação de código agora funciona ao filtrar dados em coleções do MongoDB.

Diferentes fontes são mostradas para o editor e o restante do IDE

Fonte personalizada para o editor de dados

Você pode definir fontes para o editor de dados separadamente do restante do IDE. Para escolher a fonte, acesse Settings | Tools | Database | Data views | Use custom font.

Atualizações de acessibilidade

Resolvemos alguns problemas de acessibilidade para deixar o trabalho com o leitor de tela mais confortável. Desabilitamos o pop-up do widget da janela de ferramentas e o pop-up da documentação rápida que costumavam aparecer ao passar o mouse.

O suporte para acessibilidade no macOS também foi aprimorado. Resolvemos vários problemas com o foco da narração e tornamos possível criar projetos usando um leitor de tela. Para minimizar as distrações enquanto você está programando, diminuímos o número de dicas de ferramentas que reproduzem sons.