Novidades no GoLand 2019.3

O GoLand 2019.3 consome menos CPU e é executado com mais rapidez, aumenta o suporte ao Go Modules, adiciona um conjunto de novas correções rápidas e aprimora as refatorações. É possível chamar um método de um campo embutido via Evaluate Expression e depurar seus aplicativos remotamente usando o Mozilla rr.

Você também pode habilitar um file watcher global para cada novo projeto, trabalhar com o MongoDB e muito mais!

Desempenho

Um gráfico com a medição dos tempos de inicialização do GoLand 2019.3 em diferentes sistemas operacionais

Desde o lançamento do GoLand 2019.2 neste verão, estamos trabalhando duro para fazer com que o GoLand tenha um desempenho mais rápido e consuma menos CPU. Uma das principais melhorias de desempenho é a redução dos tempos de inicialização, quando o IDE prepara tudo nos bastidores, exibe a tela de boas-vindas e indexa um projeto.

Observe que os resultados podem variar dependendo do tamanho do seu projeto e da idade, da RAM e do espaço em disco do seu dispositivo. Continuaremos trabalhando nisso, para que você possa esperar tempos de inicialização ainda mais rápidos em versões futuras.

Melhoria do Go Modules

Navegação do arquivo go.mod para a exibição de projeto

O GoLand 2019.3 fornece realce de sintaxe e navegação para arquivos go.mod. Pressione ⌘+B no macOS ou Ctrl+B no Windows/Linux em um caminho específico de importação de dependência, e o GoLand navegará você até as suas origens na exibição Project.

Além disso, na exibição Project, o Go Modules será exibido com o caminho de importação completo em vez de com apenas o último segmento dele. A versão de cada módulo do Go também será mostrada em uma cor de fonte mais suave que o caminho de importação, para ajudá-lo a diferenciar facilmente entre eles.

Atualizações do depurador

Caixa de diálogo Evaluate Expression com o resultado da chamada

Método de chamada de um campo incorporado

Agora, Evaluate Expression no depurador permite que você chame um método de um campo incorporado diretamente.

Depuração com o Mozilla rr

Depuração remota com o Mozilla rr

Muitos serviços de produção escritos em Go e executados no Linux e no Mozilla rr podem ajudar a investigar bugs que são difíceis de reproduzir. A depuração do Mozilla rr tem suporte a partir do GoLand 2018.3, mas costumava funcionar apenas em máquinas de desenvolvedores que executam o Linux. Agora, é possível iniciar um servidor de depuração em uma máquina Linux e depurar o rastreamento remotamente do macOS e do Windows. Siga estas etapas:

  • Colete um rastro rr na máquina remota.
  • Inicie o depurador na máquina remota desta maneira: dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary.
  • Conecte-se à máquina remota por meio da configuração Go Remote.

Observe que o Mozilla rr está disponível apenas em máquinas Linux.

Novas correções rápidas

Exclusão da expressão o nome do parâmetro não utilizado com Alt+Enter

Manipulando parâmetros não utilizados

Para um parâmetro não utilizado, o GoLand agora realça seu nome e tipo quando ambos podem ser removidos ou apenas o nome quando o tipo é usado para implementar uma especificação de método.

Nesse último caso, o IDE fornece duas correções rápidas para você escolher: Delete parameter names ou Rename to_. O mesmo comportamento é fornecido para funções que são usadas como um tipo de função

Além disso, agora é possível remover todos os parâmetros não utilizados de uma só vez. Pressione Alt+Enter e use a correção rápida Delete all unused parameters.

Criação uma função ausente

Criar método ou função ausente

O GoLand fornece uma correção rápida para criar uma função ou método ausente quando este é usado em um tipo de função. Basta pressionar Alt+Enter e escolher Create method/function.

Sugestão do GoLand para importar pacote

Manipulação reforçada de pseudônimos de pacotes

O GoLand agora sugere a importação de pacotes com base nos aliases usados via Alt+Enter em qualquer arquivo do seu projeto.

Refatorações

Tipos de parâmetros são mostrados nas guias Parameters e Result Parameters

Change Signature

Agora, Change Signature sempre mostra o tipo de parâmetros nas guias Parameters e Result parameters. Marque a nova caixa de seleção Reuse types para recolher tipos de consequências em Signature Preview e o resultado.

Além disso, agora você encontrará duas novas ações de intenção, Reuse signature types, que mescla definições de parâmetros em uma única declaração, e Expand signature types, que adiciona tipos a cada parâmetro via Alt+Enter.

Extract Variable sugere erro para expressão de erro de tipo

Extrair e renomear variáveis

Extract Variable e Rename agora estão mais eficientes quando se trata de sugerir nomes. Por exemplo, err é sugerido para expressões do tipo erro, ctx é sugerido para context.Context e assim por diante.

Comportamento melhorado de inspeções de código

Comparação do comportamento das inspeções de código entre as versões 2019.2 e 2019.3

As inspeções de código do GoLand estão mais focadas agora. Reduzimos o intervalo de realce dos problemas detectados no editor de código, para ajudar a mostrar as correções rápidas e ações de intenção mais relevantes para um determinado trecho de código quando você invoca o menu de contexto via Alt+Enter.

Edição de código

Um exemplo da mensagem de erro para um literal runa

Lexer de literais de runes melhorado

Melhoramos o lexer de literais de runes de várias maneiras:

  • O GoLand fornece uma mensagem de erro mais clara e concisa, explicando por que a expressão está incorreta.
  • O GoLand não realça um literal de rune válido como um erro após a edição.
  • A análise de literais de runes inválidos é mais estável.
O GoLand realça a reatribuição no lado esquerdo da declaração

Realce para reatribuições

O Go permite o uso de variáveis existentes no lado esquerdo de declarações var curtas. Dessa forma, duas construções que parecem iguais podem ter significados diferentes. Para facilitar a identificação, adicionamos realce de sintaxe para essas reatribuições.

Um exemplo de dobramento de código para literais compostos

Dobramento de código para literais compostos

O GoLand 2019.3 fornece dobramento de código para literais compostos. Use as alternâncias de dobramento de código para dobrar ou expandir o fragmento de código ou pressione Ctrl+NumPad menos/Ctrl+NumPad mais no Windows ou ⌘+NumPad menos/⌘+NumPad mais no macOS. Para configurar o comportamento padrão de dobragem de código, acesse Settings/Preferences | Editor | General | Code Folding.

Modelos dinâmicos aprimorados

para o modelo dinâmico sugere linha como um valor

Os modelos dinâmicos for e forr agora sugerem nomes de variáveis relevantes. Por exemplo, nomes como i e index são sugeridos para um índice; s, string e line são sugeridos para um valor.

O modelo dinâmico meth agora fornece sugestões de código para nomes de receptores.

Navegação

Pesquisar apenas na área selecionada

Pesquise apenas em uma área selecionada

Pesquise apenas em uma área selecionada ao usar Find (⌘+F no macOS e Ctrl+F no Windows/Linux). Basta selecionar o trecho de código necessário no editor e chamar Find – o IDE fará a pesquisa apenas na área selecionada. Para mudar facilmente para pesquisar dentro de todo o arquivo, pressione ⌘+F/ Ctrl+F uma segunda vez ou alterne a opção In Selection na barra.

Pesquisando com "Find in Path" com uma opção de máscara de arquivo em ação

Usando "Find in Path" com uma opção de máscara de arquivo

Agora, quando você pesquisa na caixa de diálogo Find in Path usando uma máscara de arquivo, o GoLand mostra as extensões de arquivo nos resultados da pesquisa de acordo. Isso facilita a distinção entre arquivos com o mesmo nome, mas com extensões diferentes.

Habilite o file watcher global para todos os novos projetos

Habilitando golangci-lint para todos os novos projetos

No GoLand 2018.2, adicionamos uma opção para compartilhar uma configuração de file watcher entre diferentes projetos, usando as opções Project e Global: ela se chama Global File Watcher.

No entanto, você ainda precisaria habilitar esse watcher em cada novo projeto. Agora, é possível habilitar esse watcher por padrão em todos os novos projetos criados ou abertos.

No menu File, selecione Other Settings | Settings for new projects, acesse Tools | File Watchers, adicione um novo watcher global e marque a caixa de seleção ao lado dele para habilitá-lo em todos os novos projetos.

Tutoriais

Um exercício para o novo recurso da refatoração Extract Variable

Muitas vezes, não há tempo suficiente para ler as páginas de Novidades, as notas de lançamento e as postagens de blog sobre o produto que você usa em meio à tensão de finalizar seu projeto e cumprir o prazo. É por isso que adicionamos Tutorials para você saber mais sobre os recursos do GoLand features quando estiver pronto.

Você pode encontrar Tutoriais na tela de boas-vindas, acima da sua lista de projetos. Quando você atualizar o IDE para uma nova versão, haverá uma lição abrangendo os recursos da nova versão. Como alternativa, você pode acessar Tutorials por meio de uma janela de ferramentas correspondente de qualquer projeto.

Mais alterações

Alternando entre os chamadores e os chamados na janela de ferramentas Hierarchy

Janela da ferramenta Hierarchy

Há uma nova opção para analisar a hierarquia de métodos dos chamados na janela de ferramentas Hierarchy. Adicionamos dois botões dedicados que permitem alternar entre os chamadores e os chamados do método selecionado. Além disso, agora você pode classificar os elementos dentro de uma árvore em ordem alfabética, clicando em um botão especial no menu. Para ver a janela de ferramentas Hierarchy na lista Tool Windows, você primeiro precisa construir uma hierarquia e depois acessar Navigate | Call Hierarchy or Navigate | Type Hierarchy.

Alternando o plug-in de temas sem reiniciar o IDE

Alterne plug-ins de temas e mapas de teclas rapidamente

No GoLand 2019.3, você pode instalar e desinstalar qualquer plug-in de tema e plug-in de mapa de teclas sem reiniciar o IDE.

Selecione "Add Keyboard Shortcut" nas configurações da ação "Focus Editor"

Um atalho personalizado para retornar o foco ao editor

Defina seu atalho personalizado para a ação que retorna o foco ao editor, em vez de usar ESC. Localize a açaõ Focus Editor em references/Settings | Keymap, clique nela com o botão direito do mouse e selecione Add Keyboard Shortcut na lista suspensa.

Barras de rolagem mais visíveis no editor

Barras de rolagem mais visíveis

Adicionamos uma opção para tornar as barras de rolagem mais visíveis. Para fazer isso, marque a caixa de seleção Use contrast scrollbars em Preferences/Settings | Appearance & Behavior | Appearance.

Melhorias no controle de versão

Nova caixa de diálogo Clone com a lista de repositórios

Caixa de diálogo Clone retrabalhada

A caixa de diálogo Clone está localizada em VCS | Get from Version control. Agora, você pode fazer login a partir desta caixa de diálogo ou, se já estiver conectado, o IDE visualizará instantaneamente as listas de todos os repositórios agrupados por contas ou organizações.

"Show Details" abre uma janela com alterações de conflito

Mais informações sobre conflitos de merge

Agora, é mais fácil investigar um conflito durante uma operação de merge, rebase ou cherry-pick. Basta clicar no link Show Details para obter a lista de submissões que levaram ao estado do código resultante e obter mais informações sobre a origem das alterações exibidas na caixa de diálogo Merge.

Atualizações de bancos de dados

Visualizar coleções e campos no explorador do banco de dados

Suporte para MongoDB

O GoLand 2019.3 fornece suporte básico para o MongoDB. Agora, você pode:

  • Visualizar coleções e campos no explorador do banco de dados.
  • Abrir qualquer coleção ou observe o resultado da consulta. Também é possível classificar por colunas ou filtrar os valores.
  • Execute consultas e obtenha os resultados. Selecione uma instrução e execute-a pressionando Ctrl/⌘+Enter ou usando o botão Play na barra de ferramentas.
Um exemplo do erro de conexão

Procure erros de conexão

Agora, está mais fácil explorar erros de conexão. Quando uma conexão falhar, basta clicar no botão dedicado no IDE para acessar os resultados da pesquisa do seu erro usando o mecanismo de pesquisa do Google.

Desenvolvimento Web

Preenchimento de código para o nome da classe da biblioteca CSS

Complementação para bibliotecas CSS no CDN

Se você está usando Bootstrap ou outra biblioteca CSS vinculada de um CDN no seu arquivo HTML, agora pode obter preenchimento para os nomes das classes nessa biblioteca, sem adicionar suas origens ao projeto.

Sugestões de código para novas variáveis

Sugestões de nomes para novos símbolos

Ao adicionar novos nomes de variáveis e parâmetros em arquivos JavaScript ou TypeScript, agora você receberá sugestões de nomes com base nos nomes de classes, interfaces e aliases de tipo definidos no projeto, em bibliotecas padrão e nas dependências que está usando.

Para novas variáveis, funções, classes e interfaces, você também receberá sugestões de nomes que já foram usados no mesmo escopo, mas que ainda não foram definidos.