Novidades do GoLand

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.

Melhorias no Go Modules

Configurando o GOPROXY com a sugestão sugerida automaticamente pela escolha do GoLand entre valores "direct" e "off" na nova caixa de diálogo "Environment Variables".

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 a palavra-chave "replace", nome da dependência e caminho para a substituição em ação.

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.

O GoLand sugere a importação de um pacote.

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.

Usando Find Usages para descobrir onde o diretório é usado no arquivo go.mod e navegar até sua origem.

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.

O GoLand realça dependências perdidas e não utilizadas e sugere removê-las e buscá-las usando correções rápidas via Alt+Enter.

No GoLand 2020.1, você pode buscar dependências ausentes e remover não utilizadas via Alt-Enter.

O GoLand notifica que a confirmação inclui o arquivo go.mod com substituições nos caminhos locais.

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.

Recursos de preenchimento de código que você não precisa aprender a usar

Completando o padrão de manipulação de erros ao digitar "if" dentro da função.

GoLand 2020.1 irá sugerir if err != nil { ... } para completar um padrão de tratamento de erros. Basta digitar if dentro da expressão.

Declaração de "struct" e "interface" usando a complementação de código.

Defina tipos de struct e interface mais rapidamente, simplesmente digitando a palavra-chave type ou struct e interface.

"Fill Fields" adiciona espaços após o ponto-e-vírgula.

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.

O GoLand move o cursor para trás do colchete de fechamento.

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.

O GoLand fornece sugestões para completar variáveis locais no tipo de retorno da função.

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 (Ctrl+Shift+Espaço)

O GoLand sugere um ponteiro para o inicializador de struct.

Preenchimento de código inteligente sugere um ponteiro para o inicializador de struct.

O GoLand sugere uma afirmação de tipo compatível.

Ele também sugere tipos compatíveis em asserções e casos de alternância de tipo primeiro.

O GoLand sugere o tipo da variável atribuída na asserção.

Na asserção de tipo, ele oferece o tipo da variável atribuída.

O GoLand fornece uma lista de possíveis ponteiros na expressão via "Smart Code Completion".

Por fim, ele fornece uma lista de sugestões para possíveis ponteiros na expressão.

Preenchimento de código básico (Ctrl+Espaço)

O GoLand completa o nome da função no bloco de comentários.

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.

O GoLand sugere conversões na expressão.

Além disso, o Preenchimento básico de código sugerirá literais e conversões.

Edição de código

O GoLand adiciona parênteses ao redor do tipo "int" depois de digitar a vírgula para adicionar o próximo tipo de retorno.

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.

O GoLand escapava aspas duplas depois de colar o texto em um literal de string.

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.

Suporte para Go 1.14

Diferença entre o GoLand 2019.3 e 2020.1 em termos de suporte a interfaces sobrepostas.

Suporte para interfaces sobrepostas

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.

Novas configurações na seção "Go Modules".

Modo de vendoring automático

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.

Atualizações do depurador

Passando por goroutines com rótulos de profiler na janela "Debug".

Suporte de rótulos do profiler

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 .

Escolhendo macros predefinidas na nova caixa de diálogo "Macros" para o campo "Program arguments" em "Run/Debug Configurations".

Suporte para macros

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.

Preenchimento Postfix

Modelo Postfix '.else em ação.

O modelo de Preenchimento Postfix .else adiciona rapidamente uma instrução if para verificar se a expressão é falsa.

Correções rápidas

Convertendo Println em Printf

Transforme uma chamada sem formatação em uma chamada de formatação rapidamente, pressionando Alt+Enter.

"Create variable" sugere completar uma expressão com um tipo "for it" esperado.

A correção rápida Create variable agora mostra uma dica de tipo esperado para facilitar a inserção do valor correto.

Inspeções de código

O GoLand adverte sobre chamadas inválidas de métodos de ponteiro em receptores não-ponteiro e fornece uma correção rápida para isso.

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.

O GoLand avisa sobre o possível uso indevido de unsafe.Pointer.

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.

O GoLand avisa que um argumento no mastro da função "Unmarshal" tem um tipo de ponteiro.

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.

O GoLand avisa que o argumento deve ter um tipo de ponteiro.

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.

Modelos dinâmicos

Declaração de "var" e "consts".

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" em ação.

O modelo fori insere o código estereotipado para o for-loop clássico.

Refatorações

O "Extract Method" mantém a ordem original após a execução.

A refatoração Extract Method mantém a ordem original da função pai e dos parâmetros do método.

"Rename" oferece renomear usos via Alt+Enter.

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.

Navegação

"Find Usages" mostra o uso de métodos de interface.

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.

Melhorias no VCS

Nova janela de ferramentas "Commit" com o diferencial no editor.

Nova janela de ferramentas Commit

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"

Pop-up Branches aprimorado

O pop-up Branches foi reformulado de várias maneiras:

  • Adicionamos um campo de pesquisa explícito que permite procurar branches remotos e locais existentes.
  • Agora, você pode usar o botão Refresh para atualizar os branches remotos existentes.
  • Indicadores de submissão de entrada (azul) e de saída (verde) foram adicionados à barra de status.
Janela "Rebasing Commits"

Caixa de diálogo Interactively Rebase from Here

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.

Atualizações de bancos de dados

Os resultados são exibidos no editor de código.
  • Execute arquivos de script e trechos de código usando Run configurations. Isso permite que você execute vários arquivos ao mesmo tempo, reordene-os, adicione novos e execute outros programas ou configurações antes do lançamento.
  • Agora, você pode ver os resultados no editor de código. Essa opção está desabilitada por padrão. Para ativar esse recurso, use: Settings/Preferences | Database | General | Show output results in the editor.
  • Crie uma configuração de túnel SSH e use-a em muitas fontes de dados ou até mesmo em projetos.
  • Adicionamos a capacidade de exportar dados para um arquivo do Excel.
  • Além disso, você pode escolher seu formato de dados preferencial no menu suspenso do extrator.

Desenvolvimento Web

O GoLand oferece para converter o código existente em encadeamento opcional e/ou coalescência nula via Alt+Enter.

Novas intenções e inspeções inteligentes para JavaScript e TypeScript

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.

O pop-up de Documentação mostra o tipo de símbolo e onde o símbolo está definido.

Documentação rápida mais útil

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.

Mais alterações

Um arquivo aberto no editor de texto sem criar ou carregar um projeto através do novo "LightEdit Mode".
  • A JetBrains Mono, uma nova fonte da JetBrains, está disponível por padrão. Para saber mais sobre a fonte, visite esta página.
  • O Grazie, um plug-in que fornece verificações ortográficas e gramaticais inteligentes para o texto que você escreve no IDE, é fornecido por padrão.
  • O novo Modo LightEdit permite abrir um arquivo no editor de texto sem criar ou carregar um projeto. Para experimentar essa nova funcionalidade, primeiro você precisará criar um iniciador de linha de comando a partir de Tools | Create Command-line Launcher, conforme descrito aqui (se você estiver usando o JetBrains Toolbox App, as etapas serão ligeiramente diferentes). Para obter instruções mais detalhadas sobre como abrir um arquivo, comparar/mesclar arquivos e até mesmo executar inspeções de código, consulte esta seção da ajuda na Web.
  • Adicionamos o novo Modo Zen, que elimina possíveis distrações e ajuda você a se concentrar completamente no seu código. Em essência, esse modo combina o Modo sem distração e o Modo de tela cheia. Para habilitá-lo, acesse View | Appearance | Enter Zen Mod, ou escolha-o no pop-up Quick Switch Scheme (Ctrl+` | View mode | Enter Zen Mode).
  • A Documentação Externa agora leva a https://pkg.go.dev em vez de https://godoc.org.
  • Trouxemos de volta o esquema de cores Default, embora com um novo nome, Classic Light.