O GoLand 2020.1 traz uma variedade de atualizações para suporte ao Go Modules, além de recursos de edição de código que requerem pouca ou nenhuma interação do usuário e uma família expandida de preenchimento de código.
Além disso, há novas inspeções de código, correções rápidas e outras melhorias, como o novo modo LightEdit, que permite abrir um arquivo no editor de texto sem criar ou carregar um projeto, verificações ortográficas e gramaticais inteligentes e novos recursos para desenvolvimento Web e trabalho com bancos de dados.
Prefere aprender interativamente em vez de ler sobre o assunto? Faça o tutorial de Recursos do GoLand 2020.1 dentro do IDE.
Agora, há suporte para as variáveis de ambiente do Go 1.13 GOPROXY
, GOPRIVATE
, GOSUMDB
, GONOPROXY
e GONOSUMB
.
Configure seus valores padrão usando o modelo de projetos Go Modules. Basta clicar no ícone Browse no campo Environment para abrir a nova caixa de diálogo Environment Variables.
Preenchimento de código para palavras-chave go
, module
, require
, replace
, exclude
, nomes de dependências e substituições por caminhos locais está disponível para o arquivo go.mod
.
Refatorações Rename e Move também estão nos negócios. Quando você renomeia ou move diretórios referenciados pelas instruções replace
, o GoLand altera o caminho no arquivo go.mod de acordo.
Agora, você também pode acessar Find Usages através da Exibição do Projeto para explorar onde o caminho para um diretório específico é usado no arquivo go.mod
.
No GoLand 2020.1, você pode buscar dependências ausentes e remover não utilizadas via Alt-Enter.
Por último, mas não menos importante, a nova versão mostrará uma notificação antes de você submeter se houver substituições por caminhos locais, para que você não as submeta por acidente.
GoLand 2020.1 irá sugerir if err != nil { ... }
para completar um padrão de tratamento de erros. Basta digitar if
dentro da expressão.
Defina tipos de struct e interface mais rapidamente, simplesmente digitando a palavra-chave type
ou struct
e interface
.
A ação Fill Fields adiciona espaços após dois pontos quando exigido pelas regras de formatação. Ele também adiciona uma vírgula no final da instrução nas declarações de literais compostos.
Agora, quando você está trabalhando com mapas, o preenchimento de código move o cursor para trás da chave de fechamento após o preenchimento de um tipo de chave.
Para o tipo de retorno da função, o preenchimento fornece sugestões para variáveis locais e valores zero que serão apropriados para o tipo de valor de retorno correspondente.
Preenchimento de código inteligente sugere um ponteiro para o inicializador de struct.
Ele também sugere tipos compatíveis em asserções e casos de alternância de tipo primeiro.
Na asserção de tipo, ele oferece o tipo da variável atribuída.
Por fim, ele fornece uma lista de sugestões para possíveis ponteiros na expressão.
Vamos dar as boas-vindas ao Preenchimento de código básico para comentários, o que facilita muito a escrita da documentação! Ele sugere nomes para as declarações de pacotes atuais e nomes de parâmetros para funções e métodos.
Além disso, o Preenchimento básico de código sugerirá literais e conversões.
O GoLand 2020.1 adiciona parênteses em torno dos tipos de retorno após a vírgula ao escrever uma assinatura de uma função de retorno com vários valores.
Quando você cola texto em um literal de string, o IDE faz o escape de aspas duplas.
Para saber mais sobre os recursos que funcionam sem você fazer nada, leia o artigo Recursos de edição do GoLand que você não conhecia.
O Go 1.14 adicionou suporte para incorporar interfaces sobrepostas, e nós também! Quando você descreve aspectos diferentes de um tipo usando interfaces sobrepostas, o GoLand não relata métodos duplicados para eles como erros.
O modo de vendoring é habilitado automaticamente no Go 1.14 quando a raiz do módulo contiver um diretório de fornecedores. Para o GoLand 2020.1, decidimos implementar um comportamento semelhante nas versões 1.13 e anteriores do Go. O IDE resolverá automaticamente as importações para o fornecedor/pasta se presente no módulo.
Para ajudá-lo a diferenciar mais facilmente entre goroutines durante a depuração ou a análise de despejos de memória, adicionamos rótulos de profiler a elas.
Se quiser saber mais, leia este artigo: Como encontrar goroutines durante a depuração .
Agora, é possível usar macros como parâmetros para executar ou depurar seu aplicativo. Na caixa de diálogo Run/Debug Configurations, clique em + nos campos Go Tool ou Program arguments para abrir a nova caixa de diálogo Macros com a lista de macros disponíveis para uso.
Além disso, agora você pode armazenar o arquivo de configuração no projeto. Selecione a opção Store como arquivo de projeto na parte superior da caixa de diálogo Run/Debug Configurations.
O modelo de Preenchimento Postfix .else
adiciona rapidamente uma instrução if
para verificar se a expressão é falsa.
Transforme uma chamada sem formatação em uma chamada de formatação rapidamente, pressionando Alt+Enter.
A correção rápida Create variable agora mostra uma dica de tipo esperado para facilitar a inserção do valor correto.
Essa nova inspeção de código avisa sobre chamadas inválidas de métodos de ponteiro em receptores que não são ponteiros e oferece uma solução rápida.
A inspeção de código Invalid conversions of uintptr to unsafe.Pointer avisa sobre usos incorretos de uintptr
e unsafe.Pointer
para converter números inteiros em ponteiros.
A inspeção Unmarshal is called with incorrect argument analisa chamadas para json.Unmarshal
e funções semelhantes de pacotes encoding/json
, encoding/xml
e encoding/gob
.
A inspeção de código Locks mistakenly passed by value ajuda a evitar a cópia acidental de um valor que contém um bloqueio.
Adicionamos novos modelos para ajudá-lo a criar rapidamente grupos de declarações. Isso inclui consts
, vars
, types
e imports
. Quando você usa um desses modelos, o GoLand adiciona chaves ao redor dos nomes da declaração.
O modelo fori
insere o código estereotipado para o for-loop clássico.
A refatoração Extract Method mantém a ordem original da função pai e dos parâmetros do método.
A refatoração Rename agora detecta a renomeação de uma declaração automaticamente. Isso significa que, quando você renomeia uma declaração manualmente, o IDE mostra um ícone de medianiz que se oferecerá para renomear todos os seus usos.
Navegue até as implementações (Ctrl+Alt+B) e Navegue até a declaração ou Usos (Ctrl+B) agora mostram primeiro os resultados do projeto atual.
Além disso, a ação Find Usages (Alt+F7) agora sempre procura usos dos métodos de interface por padrão. Para encontrar usos do método atual como antes, use Alt+Shift+Ctrl+F7.
A nova janela de ferramenta Commit agora incorpora as guias Local Changes e Shelf. Essa janela da ferramenta abrange todas as tarefas relacionadas à submissão, como verificação de diferenças, seleção de arquivos e partes a serem submetidas e inserção de uma mensagem de confirmação. Commit é uma janela de ferramenta vertical localizada no lado esquerdo da tela, que deixa espaço para o editor inteiro mostrar a diferença.
O pop-up Branches foi reformulado de várias maneiras:
Retrabalhamos substancialmente a caixa de diálogo Interactively Rebase from Here. Esta é uma caixa de diálogo que permite editar, combinar e remover suas submissões anteriores, a fim de tornar seu histórico de submissão mais linear e compreensível.
Para chamar essa caixa de diálogo, vá para a guia Log da janela de ferramentas Git, selecione a submissão mais antiga da série de submissões que você deseja editar, clique com o botão direito do mouse e escolha Interactively Rebase from Here.
Use novas intenções e inspeções inteligentes (Alt+Enter) para poupar tempo na hora de codificar! Por exemplo, agora, você pode converter rapidamente o código existente em encadeamento opcional e/ou coalescência nula, a sintaxe introduzida nas versões mais recentes do JavaScript e do TypeScript.
Para JavaScript e TypeScript, o pop-up Documentation agora mostra informações mais úteis, incluindo detalhes sobre o tipo e a visibilidade do símbolo, bem como onde esse símbolo está definido.