Novidades do GoLand

GoLand 2022.2 oferece novos recursos para genéricos e go.work. Também adicionamos suporte para testes de fuzzing.

Instruções SQL agora são detectadas automaticamente, e você obtém assistência de código abrangente para elas.

O GoLand agora oferece suporte a conexões WebSocket e pode enviar consultas GraphQL pelos protocolos HTTP e WebSocket.

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

Genéricos

Ação de intenção que substitui a interface vazia por any

Ação de intenção para converter interfaces vazias em any

Agora, o GoLand tem uma inspeção que relata o uso de uma interface vazia como um tipo ou uma restrição de tipo.

Há também uma ação de intenção que substitui interface{} por any. No pop-up da ação de intenção, você pode substituir todas as interfaces vazias em um arquivo.

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

Correção rápida para excluir parâmetros de tipo com listas de parâmetros vazias

Parâmetros de tipo com listas de parâmetros vazias agora são relatados como erros. Adicionamos uma correção rápida para excluí-los.

Inspeção de parâmetros de tipo não utilizados

Inspeção de parâmetros de tipo não utilizados

Adicionamos uma nova inspeção que relata parâmetros de tipo não utilizados. Eles estão acinzentados, e você verá um aviso quando passar o mouse sobre eles.

Inspeção para união de interfaces com métodos

Inspeção para união de interfaces com métodos

O IDE agora informará um erro se você tentar usar interfaces com métodos em uniões.

Inspeção para uso de um parâmetro de tipo como uma restrição

Inspeção para uso de um parâmetro de tipo como uma restrição

Se você tentar usar um parâmetro de tipo como restrição, o GoLand exibirá um erro.

O GoLand insere um identificador de parâmetro de tipo enquanto um método é criado.

Complementação de parâmetros de tipo ao digitar o receptor de um método

O GoLand insere automaticamente um identificador de parâmetro de tipo quando você adiciona um receptor ao criar um método.

Novo grupo em Find Usages

Novo grupo em Find Usages para parâmetros de tipo

Introduzimos um novo grupo em Find Usages para genéricos: Type parameter declaration.

Testes de fuzzing

Execução de testes de fuzzing no GoLand

Execução de testes de fuzzing

Agora, você pode executar testes de fuzzing no GoLand. Se você clicar no ícone de triângulo verde na medianiz ao lado do teste de fuzzing, verá diferentes opções para executar o teste. Se o teste falhar, a entrada de corpus seed com falha será gravada em um arquivo e colocada no diretório do pacote, na pasta testdata.

O caminho para esse arquivo também aparecerá no console como um link clicável. Se você clicar no link, o arquivo será aberto no IDE, e você verá um ícone de triângulo verde na parte superior do arquivo. Clicar nesse ícone executará go test com a entrada de corpus seed com falha.

From GoLand you can also run fuzz tests just like normal unit tests.

Correção rápida para alterar o Go SDK para uma versão compatível com fuzzing

Correção rápida para alterar o Go SDK

No GoLand, agora você não verá mais um botão de execução na medianiz se tiver configurado um Go SDK sem suporte para fuzzing. Adicionamos uma correção rápida para alterar o Go SDK atual se este não for compatível com fuzzing.

Espaços de trabalho Go

Uma solução rápida que agrupa várias diretivas de uso em uma só

Correção rápida para agrupar várias diretivas use

Adicionamos uma correção rápida que agrupa várias diretivas use em um arquivo go.work em uma só diretiva.

Go 1.19

Adicionando um argumento de string de formato para Appendf

Suporte para fmt.Appendf

Adicionamos suporte para fmt.Appendf, e agora o GoLand identifica verbos de formatação dentro de strings. Como resultado, a função Appendf se beneficia de todos os recursos que as funções de formatação possuem, como a ação de intenção Add a format string argument.

Suporte para a restrição de build unix

Agora, o GoLand oferece suporte à nova tag de build unix, que reconhece qualquer sistema Unix ou semelhante ao Unix.

Adição de loong64 à lista Arch

O Go 1.19 está introduzindo uma nova arquitetura: loong64. Nós a adicionamos à nossa lista Arch em Settings | Go | Build Tags & Vendoring.

Documentação rápida

Melhoramos a Documentação Rápida:

  • Para cada uma das 25 palavras-chave Go, o GoLand agora exibe uma dica de ferramenta de palavra-chave significativa descrevendo a semântica da palavra-chave relevante.
  • Agora, exibimos as informações de direção do canal. Esses dados são mostrados em dicas de ferramentas em três lugares: quando você passa o mouse sobre a palavra-chave chan, nas operações de envio e recebimento de canal e em todas as referências a tipos de canal.
  • A Documentação Rápida para iota agora contém informações adicionais sobre como usá-lo. Se uma constante faz parte de um grupo iota, o valor agora é mostrado na caixa de complementação, mesmo que a constante seja definida implicitamente.
  • Há também uma nova dica de ferramenta explicando como as opções de tipo funcionam.
 
  • Se você invocar a Documentação Rápida em um parâmetro de tipo, o GoLand mostrará uma dica de ferramenta com uma breve explicação de como os genéricos funcionam e com um link para um tutorial da equipe Go.
  • A dica de ferramenta para asserções de tipo agora contém informações adicionais sobre elas e oferecem exemplos.
  • O GoLand exibirá informações adicionais quando você inicializar mapas, arrays, slices e structs se você passar o mouse sobre a área dentro das chaves.
  • Se você passar o mouse sobre um identificador em branco, o GoLand mostrará uma dica de ferramenta com informações sobre o que ele é e como funciona.

Mais melhorias relacionadas ao Go

Otimização do desempenho

O GoLand não verifica mais o subdiretório cache em ~/go/pkg/mod, pois ele não contém as informações necessárias para que o IDE funcione corretamente. Essa pasta pode ser bastante grande, e acreditamos que excluí-la da verificação melhorará o desempenho.

Suporte para a diretiva go:linkname

Adicionamos suporte para a diretiva de compilação go:linkname:

//go:linkname localname [importpath.name]

Ele instrui o compilador a usar importpath.name como o nome do símbolo do arquivo objeto para a variável ou a função declarada como localname no código-fonte.

Uso irregular da inspeção iota

Uso irregular da inspeção iota

Há uma nova inspeção no GoLand que avisará se o iota for usado de maneira irregular.

Aviso sobre tentar atribuir um valor a uma constante chamada iota

Também habilitamos a inspeção Reserved word used as name para iota e outras constantes internas. A inspeção será acionada se você tentar atribuir um valor a uma constante chamada iota, true ou false.

Aviso sobre um tipo que possui métodos em receptores de valor e ponteiro

Inspeção de métodos em receptores de valor e ponteiro

A documentação do Go recomenda que todos os métodos em um determinado tipo tenham receptores de valor ou de ponteiro.

Há uma nova inspeção no GoLand que avisará se o seu tipo tiver métodos em receptores de valor e ponteiro.

Detecção automática de SQL

GoLand detecta instruções SQL.

Instruções SQL agora são detectadas automaticamente, e a linguagem é injetada em cada literal de string que corresponde a um determinado padrão. Ao injetar uma linguagem em um literal de string, você obtém assistência de código abrangente ao editar esse literal.

Configurações para editar padrões

Você pode localizar os padrões, editá-los e adicionar seus próprios padrões em Settings | Editor | Language Injections.

Run Anything

A ação Run Anything

O GoLand agora oferece suporte à ação Run Anything, que permite iniciar rapidamente configurações de execução/depuração, aplicações, scripts, comandos e tarefas, bem como abrir projetos recentes. Para usá-la, basta pressionar Ctrl duas vezes e começar a digitar na barra de pesquisa.

Cliente HTTP

Enviar uma mensagem por meio de uma conexão WebSocket

Suporte para endpoints WebSocket

O GoLand agora oferece suporte a conexões WebSocket. Você pode criar solicitações, bem como enviar e receber mensagens.

Enviar uma consulta GraphQL

Suporte para endpoints GraphQL

O GoLand agora pode enviar consultas GraphQL pelos protocolos HTTP e WebSocket imediatamente. Para http:// e https://, são usadas solicitações HTTP simples, enquanto ws:// e wss:// são delegados ao executor do WebSocket.

Selecionar um ambiente de execução no cliente HTTP

Selecionar um ambiente de execução

Agora, existe uma maneira de selecionar um ambiente de execução no ícone de reprodução na medianiz. Para habilitar esse recurso, escolha a opção Select Environment Before Run na caixa de combinação Run with.

Desenvolvimento remoto

A seção de desenvolvimento remoto na tela de boas-vindas do GoLand

Atualizamos a seção Remote Development na tela Welcome do GoLand. Aqui, você pode escolher seu método preferencial para orquestração de back-end. Além disso, a funcionalidade de direcionamento de portas agora está disponível para processos em execução no terminal.

Você pode encontrar mais detalhes sobre os novos recursos de desenvolvimento remoto nesta postagem do nosso blog.

Space

A integração com o Space agora está incluída com o GoLand

O JetBrains Space é uma plataforma completa de desenvolvimento de software que fornece gerenciamento de projetos, rastreamento de issues, hospedagem Git, revisões de código, integração contínua, repositórios de pacotes e orquestração de back-end remoto para IDEs da JetBrains por meio de ambientes de desenvolvimento.

A integração com o Space agora está incluída com o GoLand. With this first-class integration, you can browse Space projects and clone repositories, then start working on them directly. Quando suas alterações estiverem prontas, você poderá criar uma solicitação de merge e realizar uma revisão do código de dentro do IDE.

Agora, você pode gerenciar seus ambientes de desenvolvimento do Space para desenvolvimento remoto diretamente no GoLand

Agora, você pode gerenciar seus ambientes de desenvolvimento do Space para desenvolvimento remoto diretamente no GoLand.

Quando seu IDE estiver conectado à sua organização do Space, todos os seus ambientes de desenvolvimento existentes serão sincronizados. Você pode criar um novo ambiente de desenvolvimento para um repositório e um branch e começar a programar imediatamente. Também pode hibernar um ambiente de desenvolvimento para reduzir o consumo de recursos ou simplesmente excluí-lo quando seu trabalho terminar.

Interface do usuário

Mesclar janelas de projeto

Ação Merge All Project Windows no macOS

Para usuários do macOS, introduzimos a capacidade de mesclar todas as janelas de projeto abertas, transformando-as em abas de uma única janela. Para fazer isso, acesse Window | Merge All Project Windows.

Alterar o tamanho da fonte com um atalho

Atalho de teclado para alterar o tamanho da fonte

Introduzimos um atalho de teclado que altera o tamanho da fonte em todo o editor. Para aumentar o tamanho da fonte, pressione Alt+Shift+. Para diminuir, pressione Alt+Shift+,

Ao aumentar ou diminuir o zoom do seu código no editor, agora você pode ver um indicador que mostra o tamanho da fonte atual e a opção de reverter para o tamanho padrão.

Usando o campo de descrição ao adicionar um marcador

Novo campo de descrição para marcadores mnemônicos

Integramos um campo Description na caixa de diálogo Add Mnemonic Bookmark para que você possa adicionar uma descrição opcional ao seu marcador. Para adicionar um marcador mnemônico, clique com o botão direito do mouse na medianiz ao lado da linha que você deseja marcar e escolha a opção correspondente no menu de contexto. Ou você pode usar o atalho Ctrl+F11.

Tela de boas-vindas

Barra de progresso de clonagem de repositório

A barra de progresso Cloning repository agora é mostrada na lista Projects.

A janela pop-up que fornece acesso a configurações de Complementação de código

Acesso mais rápido a configurações de complementação de código

Agora, você pode acessar a opção Code Completion Settings no botão do menu de reticências verticais no pop-up de complementação de código.

Editor

Configurações de complementação de código

Controlar a inserção automática de parênteses

Adicionamos a opção de alternar se o IDE deve inserir parênteses automaticamente durante a complementação do código.

Janela de configurações com o novo menu suspenso Highlighting in editor no canto inferior direito

Alterar o estilo de realce para inspeções

Você pode ajustar o estilo de realce para inspeções usando o novo menu suspenso Highlighting in editor em Settings | Editor | Inspections.

Isto oferece mais opções para personalizar inspeções. Por exemplo, você pode definir o nível de gravidade de uma inspeção específica para Warning, mas alterar o estilo de realce para Error.

Docker

A ação para copiar imagem do Docker

Copiar imagem do Docker

Agora, você pode copiar imagens de um daemon do Docker para outro usando a nova ação Copy Docker Image, que salva a imagem em um arquivo e a envia para a conexão escolhida.

Conexão automática do Docker na reinicialização do IDE

O GoLand agora se conecta automaticamente ao Docker depois que você reinicia o IDE. Essa nova configuração está habilitada por padrão em Settings | Advanced Settings | Docker.

Integração com o Colima e o Rancher

O GoLand agora está integrado ao Colima e ao Rancher para oferecer suporte a mais opções para estabelecer conexões com um daemon do Docker.

Bancos de dados

Importar múltiplos arquivos CSV

Opção para importar múltiplos arquivos CSV

Agora, você pode selecionar múltiplos arquivos CSV e importá-los todos de uma vez.

Os modos de resolução Script e Playground

Modos de resolução para bancos de dados

Ao trabalhar com bancos de dados, agora você tem dois modos de resolução de arquivos: Playground e Script.

Playground é para quando você tem um conjunto de consultas desconectadas, e Script é para consultas que têm lógica sequencial.

Outras melhorias

Importar certificados SSL confiáveis

O GoLand agora pode ajudar você a importar certificados SSL confiáveis de armazenamentos confiáveis do sistema. Ele usará automaticamente os certificados personalizados específicos para o seu ambiente corporativo. Você não precisa realizar nenhuma ação adicional. Tudo funcionará imediatamente.

URLs clicáveis em arquivos JSON e YAML

Arquivos JSON e YAML agora apresentam referências Web inseridas automaticamente dentro de valores que começam com http:// e https://. Você pode abrir esses links em um navegador e gerar solicitações no cliente HTTP.