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.
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$
.
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.
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.
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.
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.
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
.
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.
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.
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.
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 | ...
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)
.
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.
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.
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.
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.
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.
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.
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.
//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.
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.
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.
Você pode gerar automaticamente uma solicitação gRPC no cliente HTTP clicando nos ícones de medianiz em seus arquivos .proto
.
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.
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.
À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.
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.
A funcionalidade Evaluate expression agora está disponível na aba Variables da janela de ferramentas Debug.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
It works for ClickHouse, Couchbase, Db2, H2, Apache Hive/Spark, MySQL/MariaDB, Redshift, SQLite, and Vertica. Em todos os outros bancos de dados, ela será realçada como um erro.
No editor de dados, você pode selecionar vários valores e navegar até os dados correspondentes.
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.
filter {}
e sort {}
A complementação de código agora funciona ao filtrar dados em coleções do MongoDB.
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.
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.