Olá Habr! Uma nova versão do GoLand 2018.3 foi lançada na semana passada.

Nesta atualização, você encontrará muitas melhorias para depuração e teste. Esses são aplicativos de depuração na plataforma Google App Engine, estrutura Testify, análise de despejos de memória e Mozilla rr.
Há uma nova refatoração de assinatura de alteração , inspeção de código e preenchimento automático de funções.
Além disso, adicionamos suporte para diagramas, refatorações aprimoradas de Renomeação e Inline , trabalho com modelos Go ( texto / html ) e sistema de controle de versão para os plugins Git, Docker e Kubernetes e muito mais.
Alterar refatoração de assinatura
Alterar refatoração de assinatura altera a assinatura de funções e métodos. Ajuda a definir um novo nome ou mover, renomear, adicionar ou remover parâmetros.
Se você alterar a assinatura do método, o GoLand oferecerá a atualização da implementação.
Antes de aplicar a refatoração, observe o que acontece no painel de visualização.
Uma lista de todos os arquivos e objetos aos quais a refatoração é aplicada é exibida no painel. Se você precisar de mais detalhes, no painel, poderá acessar qualquer símbolo mutável no projeto. Se o resultado não atender às expectativas, as alterações poderão ser desfeitas.

Renomear e refatoração em linha
Renomear agora alerta para possíveis conflitos como resultado da renomeação. Adicionamos um diálogo que relata o problema e se oferece para fazer uma escolha: ignore o conflito, considere ou cancele a refatoração.

O resultado da aplicação da refatoração Inline agora está imediatamente visível: o GoLand destaca o código alterado.

Depurando um aplicativo Google App Engine
Na nova versão, o depurador permite executar e depurar aplicativos na plataforma do Google App Engine localmente.
Também adicionamos um novo modelo de projeto - App Engine . Ele contém app.yaml
com configurações básicas e um arquivo main.go
com um manipulador de solicitações.

Suporte à análise de despejo de memória
Às vezes, as ferramentas de depuração padrão não fornecem uma imagem completa do que está acontecendo com o programa em determinados pontos de sua execução. Nesse caso, despejos de memória ajudarão.
Para começar a analisar um despejo de memória no GoLand, selecione Abrir despejo central no menu Executar .
Para criar automaticamente despejos de GOTRACEBACK=crash
, digite GOTRACEBACK=crash
no campo Ambiente da configuração Executar .
Você só pode criar dumps de memória no Linux, mas pode analisá-los no macOS e no Windows.

Suporte para Testify
O GoLand 2018.3 suporta a estrutura do Testify . Execute suítes e métodos de teste diretamente do editor, como funções de teste normais.
Na janela Falha na comparação , compare o valor real e o esperado se o teste falhar.

Inspeções de código
Apareceram duas novas inspeções de código : Erro não tratado e Código inacessível.
Erro não tratado avisa sobre funções e métodos que retornam um erro, mas não há verificações para lidar com esse erro.

O código inacessível identifica partes do código que nunca serão executadas.

Além disso, a inspeção de chamada de função, que verifica se uma expressão deve ser convertida em uma função ou chamada de método , agora pode corrigir automaticamente erros usando a expressão Terminar chamada .

Conclusão automática
O GoLand 2018.3 introduziu um novo tipo de preenchimento automático de funções. Imagine que você é novo no mundo golang e precisa dividir a linha. Você sabe que deve haver uma função para isso, e provavelmente é chamado de " split
". Essa função deve usar uma string como o primeiro argumento, mas você não sabe o nome exato da função e seu pacote. Um novo tipo de preenchimento automático facilita a localização desses recursos.
Ligue duas vezes para conclusão básica (Ctrl + Espaço + Espaço) para ver todas as opções de conclusão disponíveis.

Ações de intenção
O argumento Add string de formato gera um especificador de formato para a expressão especificada, insere o especificador na string de formato e passa a expressão como argumento do especificador.

Gerar Construtor cria uma função especial para inicializar estruturas.

Gerar getter / setter agora permite editar os parâmetros da função gerada.

Agora Gerar Construtor , Gerar getter / setter e Gerar getter e setter estão disponíveis no menu Gerar .
Depurador
O diálogo entre Avaliar Expressão e o painel Observadores agora possui preenchimento automático, inspeções e correção automática de erros.

Ir modelos ( html / modelo )
Os modelos Go ( html / template ) funcionam com o preenchimento de código e a renomeação da refatoração, agora você pode mudar de qualquer caractere para seus locais de uso, e a formatação foi aprimorada.

Mozilla rr
Adicionamos suporte rr da Mozilla ao depurador Linux. Grave e reproduza o programa usando apenas dois botões. Para iniciar a depuração, você precisa instalar o Mozilla rr .
Caso contrário, tudo funcionará da mesma forma que no depurador padrão, exceto pelo botão Rewind especial do Mozilla rr. Inicia o programa de volta ao ponto de interrupção anterior.

Gráficos
Adicionamos suporte a gráficos para visualização:
- dependências dentro dos projetos dos módulos Go;
- relações entre módulos importados e exportados em projetos JavaScript e TypeScript;
- relacionamentos entre tabelas em bancos de dados e SQL.

Pesquisa e navegação
As caixas de diálogo Localizar no caminho e Substituir no caminho agora funcionam com trechos de código de várias linhas.

A caixa de pesquisa, Search Everywhere , é mais rápida e combina Ir para digitar , Ir para arquivo , Ir para símbolo e Localizar ações . Use TAB para alternar entre as guias.

Aprimoramentos do editor de código
Novos ícones no editor não apenas informarão quais métodos foram redefinidos, mas também ajudarão a alternar de um desses métodos para outro com um clique.

A declaração atual completa insere automaticamente uma vírgula em literais compostos (estruturas, dicionários etc.) e coloca o cursor na posição da próxima declaração.

No GoLand 2018.3, é possível definir um conjunto de arquivos aos quais as ações Código Reformat , Otimizar importações e Reorganizar não serão aplicadas .

O IDE suporta comentários TODO de várias linhas para arquivos em Go, JavaScript, TypeScript, CSS e SCSS.

Sistema de controle de versão
A integração com o Git agora exibe solicitações de verificação de alterações para o repositório em uma nova janela - Solicitações de Pull do GitHub , e também suporta sub-módulos do Git.

Disponibilidade
Adicionamos um novo tema de alto contraste e melhoramos o suporte para leitores de tela.

Docker
O plug-in docker suporta argumentos da CLI nas configurações de execução . Os seguintes argumentos podem ser usados no novo campo Compilar da configuração de inicialização do Dockerfiles : cache-from, cpu-shares, cpuset-cpus, force-rm, label,
memory, memory-swap, shm-size, no-cache, pull, quiet,
rm.

Kubernetes Plugin
A conclusão do código, renomeação da refatoração, inspeções de código e correções rápidas funcionam nos modelos do Helm.

Outras mudanças
- A ação Anexar está agora no menu Abrir Projeto , que permite adicionar um diretório quando você abre um novo projeto.
- Agora você pode abrir o projeto arrastando-o para a janela de boas-vindas.
- O Activity Monitor mostra a quantidade de recursos do processador que vários subsistemas e plugins consomem: Ajuda | Monitor de Atividade.
- Encontrar e atualizar plugins no IDE tornou-se mais conveniente. A página de plug-ins suporta a pesquisa por tags e a classificação dos resultados por download, nome, classificação, recomendado ou atualizado.
- A indexação de projetos é muito mais rápida.
Isso é tudo! Como sempre, teremos o maior prazer em ouvir sua opinião: escreva-nos aqui nos comentários, no Twitter ou no rastreador de erros :)
Você pode baixar a atualização na página de download ou no aplicativo Toolbox .
Só para garantir, se você já estiver usando o IntelliJ IDEA Ultimate, todos os recursos do GoLand estarão disponíveis: instale este plugin .
Obrigado pela atenção!