Novidades no GoLand 2023.3

O GoLand 2023.3 vem com vários acréscimos significativos:

  • O AI Assistant da JetBrains agora está disponível ao público com uma série de recursos novos e aprimorados para aumentar sua produtividade nos IDEs da JetBrains.
  • Agora há suporte oficial para Dev Containers. Estamos trabalhando em um conjunto de recursos e desenvolvendo ativamente o suporte para Dev Containers para que eles venham com a tag “Beta”.
  • Uma imensa atualização no estilo de dobramento de código para tratamento de erros, returns e panics de linha única e outros elementos de código.
  • Várias dicas, refatorações e correções rápidas para melhorar sua produtividade, como dicas para expressões slice, insights de código para funções personalizadas do tipo printf e melhorias no depurador.

O GoLand 2023.3 também oferece atualizações para integrações com o Docker e o Kubernetes, sistemas de VCS e alguns ajustes para desenvolvimento Web. Mergulhe de cabeça!

AI Assistant Disponibilidade geral

As atualizações mais recentes incluem geração aprimorada de código diretamente no editor, chat de IA com reconhecimento de contexto, que responde a consultas relacionadas ao projeto sem exigir que você copie o código, e ações de IA com reconhecimento de projeto que usam contexto estendido para fornecer resultados mais abrangentes. Um novo visualizador de diferenças facilita a identificação de alterações que as ações de IA fizeram no seu código.

Use o AI Assistant no GoLand como recurso complementar com uma assinatura do JetBrains AI Service.

AI Assistant para GoLand: Rename

É difícil definir nomes! É por isso que o AI Assistant no GoLand sugerirá algumas ideias de nomes para funções para melhorar a legibilidade.

AI Assistant para GoLand: Write documentation

Documentar seu código é uma rotina comum, mas necessária. A ação Write documentation facilita o código bem comentado com apenas alguns cliques.

AI Assistant para GoLand: Generate Unit Test

O AI Assistant pode ajudar você a criar um teste para uma função ou método específico e sugerirá a adição de mais casos de teste após a criação da classe de teste inicial.

Refatorações

Create function em outro pacote de correção rápida

Esta correção rápida permite que você digite um nome de função inexistente e então gere a implementação em um pacote de sua preferência.

Refatoração Extract Parameter

A versão 2023.3 vem com a primeira parte da tão aguardada refatoração Extract Parameter. A correção rápida Create Parameter para referências não resolvidas permite selecionar uma referência não resolvida e usar a opção de correção rápida para criar um parâmetro. Também permite alterar seu tipo caso não seja suficientemente preciso, fornecendo um valor padrão e alterando as chamadas com o valor padrão.

Dev Containers Beta

Suporte para Dev Containers

O GoLand agora oferece suporte para Dev Containers, permitindo que você use containers como um ambiente de desenvolvimento completo para editar, compilar e executar seus projetos. Dev Containers podem ser executados remotamente por meio de uma conexão SSH ou localmente usando o Docker.

Suporte para Dev Container Features

O GoLand 2023.3 oferece suporte para Dev Container Features, proporcionando uma maneira conveniente e rápida de integrar ferramentas, tempos de execução e bibliotecas adicionais essenciais para desenvolvimento.

Suporte para Docker Compose no Dev Containers

Também introduzimos suporte para Docker Compose dentro do Dev Containers, permitindo o lançamento contínuo do container principal com o IDE e de quaisquer containers dependentes, como aqueles com bancos de dados ou filas de mensagens, que são úteis durante o processo de desenvolvimento.

Dobramento de código aprimorado

returns e panics de linha única

Para returns and panics de linha única, agora haverá uma opção para usar o novo estilo conciso de dobramento de código, que parecerá muito mais próximo do código original.

A nova sintaxe de dobramento está habilitada por padrão.

Usamos uma abordagem semelhante para cláusulas case: a seta para cima é removida, e apenas os dois pontos duplos são dobrados.

Funções com returns únicos

Assim como fizemos para returns e panics, também habilitamos o dobramento para funções com uma única instrução return.

Tratamento de erros

Para melhorar a legibilidade do código de tratamento de erros, o GoLand dobra automaticamente os blocos if de tratamento de erros.
Para blocos if com código de tratamento de erros, o GoLand também dobra todas as instruções únicas, por exemplo, com chamadas para registro em log.

Dobramento de código desabilitado para formatação de string

Desabilitamos o dobramento de código para formatação de string a fim de tornar a sintaxe relevante mais visível. Além disso, a nova abordagem para dobramento de código permite editar blocos de código sem precisar expandi-los.

Complementação de código

Geração de switch para enums

O GoLand agora pode ajudar na escrita de instruções switch para enums. Ele sugere a geração de cases para todos os valores na complementação.

Aviso sobre ramos ausentes quando os cases contêm constantes declaradas usando iota

A inspeção ajuda você a acompanhar expressões switch para constantes iota. A inspeção avisa sobre cases não cobertos por switch e oferece duas soluções: adicionar as cláusulas faltantes ou adicionar uma cláusula padrão.

Run e Build

Perfis de cobertura de código para programas

O recurso permite que você veja exatamente qual código foi alcançado em execuções únicas ou múltiplas. Também ajuda a detectar código inativo.
Anteriormente, ele funcionava apenas para execuções de teste, mas agora você também pode executar a função main com Coverage.

Outros recursos relacionados ao Go

Dicas de parâmetros para expressões slice

Expressões slice podem ser confusas, especialmente aquelas com três índices. O GoLand agora mostrará dicas enquanto você constrói fatias.

Insight de código para funções personalizadas do tipo printf

O GoLand fornece muitos recursos úteis para funções padrão do tipo printf: realce de espaços reservados, detecção de erros, dobramentos de código etc. Agora, todos esses recursos estão disponíveis para funções do tipo printf definidas pelo usuário.

Data Flow Analysis

O GoLand 2023.3 apresenta um analisador de fluxo de dados refinado baseado no mecanismo usado no CLion. Esse recurso detecta problemas de código de maneira mais ampla, como possível dereferenciamento de nil, tratamento de erros incorreto ou ausente e sempre condições true/false.

Observe que esse recurso está atualmente em acesso antecipado e está desabilitado por padrão. Você pode habilitá-lo em Settings | Editor | Inspections | Go | Data Flow Analysis (experimental) e envie-nos seu feedback!

Suporte para instalações Go locais com asdf

O asdf é uma ferramenta de CLI que permite gerenciar versões de ambientes de runtime de diferentes linguagens de programação. Em resposta ao feedback da comunidade, decidimos incluir suporte ao asdf nesta versão. Neste lançamento, o GoLand verificará a versão do Go no arquivo .tool-versions e usará a versão do Go apropriada para o projeto selecionado.

Compatibilidade futura e gerenciamento de toolchain para o Go 1.21

O Go 1.21 e versões posteriores são mais cautelosos para não compilarem erroneamente código que requeira uma versão ainda mais nova do Go. Especificamente, a linha go em go.mod agora especifica uma versão mínima necessária da toolchain Go, enquanto nas versões anteriores, era uma sugestão praticamente não aplicada.

Agora, o GoLand oferece suporte total a esse fluxo e baixa automaticamente a versão do SDK especificada em um arquivo go.mod usando a linha go ou toolchain. A versão especificada também é definida automaticamente nas configurações do projeto Go.

Melhorias no desempenho do suporte para vendoring

O GoLand 2023.3 migrou para a moderna API da Plataforma IntelliJ e, portanto, não executa go list -m pela segunda vez quando o projeto contém diretórios de fornecedores. A utilização mais eficaz de caches melhora o desempenho de projetos contendo vários módulos Go.

Depurador

Opção embutida Run to Cursor

Uma nova opção embutida Run to Cursor que oferece uma maneira rápida de navegar até uma linha específica de código durante a depuração. Depois que seu programa é suspenso, você pode passar o mouse sobre a linha de código na qual deseja continuar a execução. Em seguida, pode usar o pop-up Run to Cursor para executar seu código até chegar à linha onde o cursor está posicionado.

VCS

Suporte para snippets do GitLab

Expandindo a integração com o GitLab, adicionamos suporte para snippets do GitLab. Agora, você pode criar snippets públicos ou privados diretamente no IDE.

Kubernetes

Opção para adicionar contextos de cluster a partir de um arquivo

Agora, você pode adicionar facilmente contextos kubeconfig de clusters localizados em diretórios fora do sistema necessário. O projeto incluirá links para arquivos kubeconfig, disponibilizando esses clusters enquanto você trabalha no seu projeto. O conteúdo kubeconfig adicionado dessa forma não será copiado ou modificado no sistema (~/.kube/config). Esse recurso é especialmente útil quando você adiciona e remove frequentemente clusters do Kubernetes de ambientes de nuvem ou locais. Saiba mais.

Instalação automática de ferramentas Kubernetes

Ao começar a usar o plug-in Kubernetes, pode ser necessário instalar o kubectl e/ou o Helm. Se você ainda não tiver esses componentes na sua máquina, o IDE oferecerá para instalá-los automaticamente.

Depuração aprimorada com Telepresence

O Telepresence permite depurar localmente os microsserviços de um aplicativo Kubernetes, como se a sua estação de trabalho fizesse parte do cluster. Nesta versão, tornamos o workflow do Telepresence mais acessível movendo-o para o menu de contexto do cluster. Também simplificamos o gerenciamento de interceptação para uma experiência de depuração mais tranquila.

Suporte para o bloco import no Terraform

O GoLand oferece suporte a blocos import de nível superior da versão 1.5 da linguagem de configuração Terraform. Os blocos import permitem colocar a infraestrutura atual sob o gerenciamento do Terraform. Quando import é usado em um bloco de código, ele se torna parte do plano padrão e dos ciclos de aplicação e deixa de ser uma operação de estado. O Terraform realiza geração automática de código para recursos importados, economizando tempo no desenvolvimento de infraestrutura como código.

Outras atualizações

Melhorias para TypeScript

O GoLand 2023.3 resolve algumas das inconsistências encontradas ao adicionar instruções import type. Adicionamos a opção de configurar o uso da instrução import type TypeScript ou do especificador de tipo ao importar um tipo. Também melhoramos o comportamento do campo exports de package.json para arquivos TypeScript.

Melhorias no HTTP Client

Melhoramos a exibição Structure para melhor navegação em arquivos .http grandes. Essa atualização também introduz rótulos codificados por cores para tipos de solicitação e fornece uma listagem mais clara de seu conteúdo. Também adicionamos suporte para declaração de variáveis usando @ e autenticação com senha OAuth 2.0 e tipos de concessão de credenciais de clientes.

Suporte para Cypress e Playwright

O GoLand detectará automaticamente seus testes Cypress e Playwright e permitirá que você os execute e depure com um único clique do mouse. O suporte também inclui a capacidade de explorar os resultados e encontrar problemas navegando pela Test Tree.

Visualizador de diferenças multifuncional

Essa é uma maneira renovada de revisar alterações no código. Agora, em vez de passar por cada arquivo um por um, você pode ver todos os arquivos modificados de um conjunto de alterações em um único quadro rolável. Saiba mais.