Novidades do GoLand

O GoLand 2022.3 oferece aprimoramentos de desempenho, bem como novos recursos para genéricos e espaços de trabalho Go.

Integramos o Go Playground, adicionamos suporte para melhorias em comentários de documentos Go, introduzimos novos recursos para HTTP Client e Docker e disponibilizamos a nova UI.

Como de costume, você encontrará novos recursos para desenvolvimento Web e bancos de dados, como o suporte para Redis.

Se você prefere uma abordagem de aprendizagem interativa, convidamos você a fazer o tutorial What's New in GoLand 2022.3 na tela Welcome.

Por último, mas não menos importante, o GoLand completa 5 anos hoje, e estamos convidando você para celebrar comemorar conosco. Digite "Happy B-day, GoLand!" no GoLand 2022.3 ou GoLand 2022.2.5 e veja o que acontece!

Melhorias de desempenho

A janela Background Tasks mostrando a indexação e a execução de go list

Mudanças em go list para melhorar a indexação

When you open a project, GoLand indexes the files and runs the go list command, which reports information about the project structure. A indexação é pausada enquanto o go list está em execução, e você não terá acesso aos recursos de insight de código até que a indexação seja concluída.

Anteriormente, o GoLand executava go list duas vezes em alguns casos. Mudamos nossa API e reduzimos o número de inicializações de go list. Esperamos que essa alteração melhore significativamente o desempenho de projetos grandes com muitos módulos.

Restaurando a estrutura do projeto do cache ao abrir

Agora, quando você abre um projeto, as informações relatadas por go list são salvas no disco na memória de cache. Ao abrir esse projeto novamente, os dados sobre a estrutura do projeto são carregados da memória e considerados quando a indexação é iniciada.

Graças a isso, a indexação continua sem pausas e termina mais rápido, e os recursos de insight de código ficam disponíveis muito mais cedo após a abertura do projeto.

Maior rapidez ao inicializar o IDE e abrir projetos

O GoLand recebeu várias outras melhorias de desempenho projetadas para diminuir o tempo necessário para iniciar aplicativos e abrir projetos em IDEs da JetBrains.

Como resultado, o desempenho geral da inicialização, incluindo a restauração do editor, foi aprimorado em cerca de 30%.

Genéricos

Gerando um teste para uma função genérica

Geração de testes para funções genéricas

Agora, você pode gerar testes para funções com parâmetros genéricos.

Correção rápida que exclui parâmetros de tipo com listas de parâmetros vazias

Correção rápida para por em maiúsculas parâmetros de tipos

Agora, temos uma inspeção que detecta parâmetros de tipos em minúsculas, bem como uma correção rápida para colocá-los em letras maiúsculas.

Espaços de trabalho Go

Usando a ação Go Workspace File

A ação Go Workspace File

No menu de contexto New, agora você encontrará a ação Go Workspace File. Ao selecioná-la, um arquivo go.work aparecerá na sua pasta raiz. Módulos Go existentes serão adicionados automaticamente ao arquivo go.work.

Gerando go.work usando diretivas replace

Gere go.work usando diretivas replace

Agora, você pode gerar go.work a partir de go.mod se tiver diretivas replace lá. Coloque o cursor em uma diretiva replace, pressione Alt+Enter para ver todas as ações de intenção disponíveis e selecione a correção rápida Add … module to workspace.

Comentários de documentos Go

O Go 1.19 adicionou suporte para links, listas e novos cabeçalhos nos comentários de documentos. O GoLand 2022.3 também oferece suporte a esses novos recursos.

Links de texto e documentos são mostrados no pop-up Quick Documentation e na janela de ferramentas Documentation

Suporte para links

Adicionamos referências a links de documentos no GoLand. Clicar neles leva ao elemento referenciado, enquanto clicar em um link de texto leva a uma definição de link de texto.

Os links de texto e de documento são renderizados como links no pop-up Quick Documentation e na janela de ferramentas Documentation.

Novos cabeçalhos são mostrados na janela de ferramenta Documentation

Suporte para novos títulos

A partir do Go 1.19, um título é uma linha que começa com um sinal numérico (#) seguido por um espaço e o texto do título.

Novos cabeçalhos são renderizados como cabeçalhos HTML no pop-up Quick Documentation do GoLand e na janela de ferramentas Documentation.

Listas são mostradas na janela de ferramentas Documentation

Suporte para listas

Listas são renderizadas como listas HTML no pop-up Quick Documentation do GoLand e na janela de ferramentas Documentation.

Go Playground integrado

Usando o Go Playground de dentro do GoLand

Integramos a funcionalidade Go Playground dentro do GoLand.

Você pode selecionar um trecho de código, escolher a opção Open In e clicar em Playground. Isso abrirá um arquivo de rascunho com uma barra de ferramentas que contém as mesmas opções que você tem ao usar o Go Playground.

Você pode formatar e compartilhar seu código, alterar a versão do Go, executar seu código usando o servidor Go Playground ou executá-lo localmente.

Novas correções rápidas

Usando uma correção rápida para transformar um tipo em um ponteiro

Correção rápida para tipo recursivo inválido

Se o seu tipo contiver a si mesmo, você receberá um erro de "Tipo recursivo inválido". To avoid this, you should include a pointer to a type, not a type itself. Agora temos uma correção rápida para isso.

Editor

O nome do autor do código é mostrado no Editor

Code Vision

Começamos a implementar o recurso Code Vision. Por enquanto, os autores do código são exibidos quando a integração de controle de versão está habilitada. Se você clicar no nome do autor do código, a barra lateral Annotate with Git blame será aberta, permitindo que você veja quem introduziu várias alterações.

Usos exibidos perto de funções e tipos

Também introduzimos usos exibidos perto de todas as funções e tipos, mostrando quantas vezes essas funções ou tipos são referenciados no projeto atual.

Dicas embutidas para blocos de definição de constantes são mostradas no Editor

Dicas embutidas para definições de constantes

O GoLand agora mostra dicas embutidas para blocos de definições de constantes. Isto é particularmente útil em blocos de constantes derivadas de iota, em que as dicas mostram os valores de iota associados a cada posição.

Os campos protobuf automaticamente gerados são ignorados após invocar a ação de intenção "Fill all fields"

Campos protobuf gerados automaticamente ignorados para Fill all fields

O IDE agora ignora campos de buffer de protocolo gerados automaticamente que começam com XXX_ quando você invoca a ação de intenção Fill all fields. Esses campos são mostrados somente depois que você chama a complementação pela segunda vez.

Outros recursos relacionados ao Go

Variáveis de ambiente Go são exibidas nas configurações

Variáveis de ambiente Go exibidas nas configurações

O GoLand agora seleciona automaticamente as variáveis do sistema relacionadas aos módulos Go e as exibe na janela de diálogo Environment variables. Para abrir essa janela, acesse Settings | Go | Go Modules e clique no ícone Edit environment variables.

Nomes de pacotes são mostrados na documentação rápida

Nomes de pacotes sempre mostrados no pop-up Quick documentation

O IDE agora sempre mostra os nomes dos pacotes no pop-up Quick documentation para declarações de nível superior. Anteriormente, os cabeçalhos dos pacotes eram mostrados apenas quando arquivos doc.go ou <pkg_name>.go eram encontrados.

Limite de tamanho de arquivo aumentado

Aumentamos o limite de tamanho de arquivo de 2,5 MB para 10 MB. Recursos de insight de código, como navegação e realce, não funcionam para arquivos que excedem o limite de tamanho.

Embora o limite de 2,5 MB seja suficiente para a maioria dos arquivos, existem projetos com arquivos maiores que isso, por exemplo, AWS SDK ou GCP.

A inspeção Receiver names are different ignora o código gerado

Como a inspeção Receiver names are different não é relevante para o código gerado, nós a desabilitamos para arquivos que contêm um comentário correspondente à seguinte expressão regular: ^// Code generated .* DO NOT EDIT\.$

Cliente HTTP

Escrevendo um bloco de script no cliente HTTP

Scripts de pré-solicitação e novas APIs para manipuladores de JavaScript

O Cliente HTTP agora oferece suporte à execução de blocos de scripts antes das solicitações. Você pode gerar dados antes de executar uma solicitação e colocá-los na solicitação final usando variáveis. Está disponível uma correção rápida que criará o código genérico para inicializar variáveis.

Calculando os valores de hash md5 ou sha1 para solicitações HTTP

O cliente HTTP agora oferece suporte para a API Crypto. Você pode calcular os valores de hash md5 ou sha1 para solicitações HTTP.

Usando valores aleatórios em solicitações HTTP

Para casos simples, o IDE agora apresenta um novo conjunto de variáveis aleatórias.

Docker

As configurações do Docker no GoLand no Windows

Executável do Docker do WSL sem o Docker Desktop

O GoLand agora oferece suporte a conexões com o Docker que são executadas no Windows Subsystem for Linux (WSL). Você pode configurar essa conexão em Settings | Build, Execution, Deployment | Docker.

Usando uma correção rápida para extrair uma imagem

Nova ação de intenção: Pull Docker image

Agora existe uma maneira fácil de extrair uma imagem necessária sem executá-la de um Dockerfile ou docker-compose.yml. Para isso, chame as ações de contexto (Alt+Enter) no nome da imagem realçada e selecione Pull Docker image.

Usando a complementação de código em um arquivo dockerignore

Suporte para o tipo de arquivo .dockerignore

Introduzimos suporte completo para arquivos .dockerignore, incluindo realce e complementação de código. Esses arquivos agora são levados em consideração quando você cria uma imagem a partir do IDE.

A sintaxe Heredoc é realçada no GoLand

Suporte para o formato heredoc em arquivos Dockerfile

Documentos Here permitem que você redirecione as linhas subsequentes do Dockerfile para a entrada dos comandos RUN ou COPY. O GoLand agora oferece suporte para essa sintaxe e, portanto, você pode usá-la para gerar arquivos de configuração ou scripts multilinha diretamente em seus arquivos Dockerfile.

Configurando conexões adicionais do Docker usando Docker Contexts

Conexões do Docker a partir de Docker Contexts

Agora, você pode configurar conexões adicionais do Docker usando Docker Contexts se já tiver essas configurações na sua configuração do Docker. Você pode fazer isso chamando o menu de contexto Add Service na exibição Services e selecionando Docker Connections From Docker Contexts.

Desenvolvimento remoto (Beta)

A seção Remote Development na tela de boas-vindas do GoLand

O backend do seu IDE agora pode ser iniciado diretamente no WSL 2, e você pode se conectar a ele da mesma forma que se conectaria a qualquer máquina remota ao usar o desenvolvimento remoto no GoLand.

Interface do usuário

A seção New UI Preview nas configurações

Nova UI disponível

Como você já deve saber, anunciamos em maio um programa de versão prévia fechada para a nova UI nos IDEs da JetBrains.

Convidamos você a mudar para a nova UI em Settings | Appearance & Behavior | New UI Preview, avaliá-la e compartilhar conosco sua opinião sobre essa mudança.

Usando a funcionalidade de pré-visualização para ações de intenção

Pré-visualização de ações de intenção habilitada por padrão

A funcionalidade de pré-visualização para ações de intenção agora está ativada por padrão, para que você possa ver instantaneamente como seu código será alterado depois de aplicar as sugestões do IDE.

Você pode habilitar ou desabilitar o recurso de pré-visualização pressionando Ctrl+Q enquanto a lista de ações de intenção estiver aberta.

Arrastando uma janela de ferramentas para fora da janela principal e encaixá-la em uma aba flutuante do editor

Encaixando janelas de ferramentas em abas flutuantes do editor

Para facilitar a organização do seu espaço de trabalho e a interação com o GoLand em vários monitores, implementamos a opção de arrastar as janelas de ferramentas para fora da janela principal e encaixá-las nas abas flutuantes do editor.

A janela "Tips of the Day"

Melhorias em Tips of the Day

Melhoramos o recurso Tips of the Day, uma ferramenta de aprendizado que ajuda você a explorar o GoLand.

Cada dica agora tem um título. Também ajustamos o algoritmo que determina quais dicas são exibidas, para que você veja as mais relevantes para sua experiência com o IDE e o projeto no qual está trabalhando.

Marcando como favorito um arquivo a partir de uma aba do editor

Marcadores de favoritos atualizados

Novamente, é possível marcar como favoritos arquivos nas abas do editor. Basta clicar com o botão direito do mouse em uma aba para abrir o menu de contexto e selecionar Bookmarks.

Adicionando aos favoritos todos os arquivos em abas abertas

Você pode adicionar a Bookmarks todos os arquivos em todas as abas abertas no momento. Para fazer isso, invoque o mesmo menu de contexto e selecione Bookmark Open Tabs ou chame essa ação usando o ícone de três pontos localizado no lado direito do painel de abas do editor.

A seção Settings Sync nas configurações do GoLand

Nova solução Settings Sync

Apresentamos uma solução reformulada para sincronizar suas configurações de usuário personalizadas. Por muito tempo, havia dois plug-ins que existiam em paralelo e apresentavam a funcionalidade de interseção: IDE Settings Sync e Settings Repository. Para evitar a confusão de ter dois plug-ins agrupados semelhantes, mesclamos seus conjuntos de recursos em uma única solução: o novo plug-in Settings Sync.

You can find details about the new unified solution here.

Bancos de dados

Observação: para saber mais sobre todas as atualizações de bancos de dados na versão 2022.3, acesse a página de Novidades do DataGrip.

Selecionando uma conexão com o Redis na janela de ferramentas Database

Suporte para o Redis

Foi implementada uma iteração preliminar do tão esperado suporte para o Redis.

Filtrando objetos ao usar a pesquisa rápida na janela de ferramenta Database

Filtro rápido

Agora, ao usar a pesquisa rápida, você também pode filtrar objetos. Todos os objetos não correspondentes serão ocultados.

Desenvolvimento Web

Observação: para saber mais sobre todas as melhorias de desenvolvimento Web na versão 2022.3, acesse a página de novidades do WebStorm.

O nome do autor do código e a métrica de usos são mostrados no Editor

Code Vision para JavaScript e TypeScript

Essa versão apresenta o novo recurso Code Vision para desenvolvimento Web. Ela reúne várias métricas para tipos e membros de tipo no seu código JavaScript e TypeScript e exibe essas informações perto das suas declarações.

Outras atualizações

Usando uma correção rápida para suprimir uma inspeção em um arquivo YAML

Correção rápida para suprimir inspeções em YAML

Há uma nova correção rápida para suprimir inspeções com um comentário em arquivos YAML, incluindo arquivos Kubernetes, especificações OpenAPI e arquivos docker-compose.yml.

Também introduzimos uma opção para desdobrar comentários de várias linhas que formam um bloco de três ou mais linhas e que começam com #.

Instaladores para Windows ARM64

Começamos a distribuir instaladores para o Windows ARM64. Você já pode baixá-los em nosso site ou no Toolbox App.