Novidades do GoLand

O GoLand 2023.1 introduz o verificador de vulnerabilidades, melhor navegação no código gRPC e a refatoração Rename para receptores genéricos.

Agora, você pode executar arquivos de trabalho com pacotes de biblioteca não padrão, usar expressões regulares para criar suas próprias inspeções de busca e substituição, bem como converter rapidamente caracteres literais brutos em caracteres com aspas duplas, e vice-versa. A ação de intenção Implement interface agora funciona para interfaces não exportadas.

Além disso, você encontrará várias melhorias na nossa nova UI, atualizações para Docker e Kubernetes e melhorias para desenvolvimento Web.

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

Verificador de vulnerabilidade

O GoLand realça um pacote com vulnerabilidades conhecidas em go.mod

Realce de pacotes vulneráveis

O GoLand agora pode realçar pacotes com vulnerabilidades conhecidas em go.mod. Passe o mouse sobre o código realçado ou pressione Alt+Enter, selecione Show vulnerability info for …, e o GoLand mostrará uma lista de vulnerabilidades com links para a descrição detalhada. Os dados sobre vulnerabilidades são fornecidos pela empresa de segurança de software Checkmarx.

Uso de uma correção rápida para atualizar uma dependência vulnerável para uma versão segura

Atualização de pacotes vulneráveis para a versão segura

Você pode posicionar o cursor em um pacote realçado em go.mod, pressionar Alt+Enter e escolher a correção rápida Change package-name version to v0.x.x para atualizar uma dependência para uma versão que não tenha vulnerabilidades.

O GoLand realça chamadas de métodos de um pacote com vulnerabilidades conhecidas

Realce de chamadas de métodos de pacotes vulneráveis

O GoLand também realça chamadas de métodos de pacotes com vulnerabilidades conhecidas diretamente no seu editor. Você pode passar o mouse sobre o código realçado e ver um pop-up com informações sobre a vulnerabilidade e um link para a descrição detalhada.

A nova janela de ferramentas Dependency Checker

Janela de ferramentas Dependency Checker

Você pode acessá-lo via Code | Analyze Code | Show Vulnerable Dependencies.

Navegação gRPC

Uso de ícones de medianiz para navegar entre serviços de arquivos .proto e suas implementações no código Go

O cliente HTTP do GoLand atualmente é compatível com a execução de solicitações gRPC. Você também pode executar solicitações gRPC na janela de ferramentas Endpoints.

Essa versão oferece outra adição valiosa ao nosso conjunto de recursos gRPC. Agora, você pode navegar e acessar declarações de mensagens, serviços e métodos do código Go e suas implementações Go a partir de arquivos .proto.

Para isso, clique no ícone dedicado ao lado da declaração de uma mensagem, serviço, método ou sua implementação.

Crie arquivos temporários

Execução de código com dependências de bibliotecas não padrão em um arquivo temporário

Execute arquivos temporários com pacotes de bibliotecas não padrão

Agora, você pode executar arquivos temporários com dependências Go de bibliotecas não padrão. Quando você copia seu código de um arquivo de projeto para um arquivo temporário e pressiona o botão Run, o GoLand cria uma configuração Run com o sinalizador -overlay. Esse sinalizador é usado com um arquivo JSON que mapeia caminhos de arquivo para go.mod e go.sum em seu projeto original.

Genéricos

Usando a refatoração Rename para alterar receptores genéricos

Refatoração Rename para receptores genéricos

Quando você renomeia um parâmetro de tipo em um struct, a refatoração Rename agora sugere alterar os receptores de acordo.

Corrigimos vários problemas que afetam a navegação entre interfaces, implementações e especificações de método no código genérico. Também implementamos várias correções adicionais para falsos positivos e falsos negativos relacionados a genéricos.

Intenções e correções rápidas

Usando uma ação de intenção para converter literais de string

Conversão entre diferentes tipos de literais de string

Há agora uma ação de intenção que permite converter rapidamente literais de strings brutos (strings delimitadas por acentos graves) em aspas duplas, e vice-versa.

Usando uma nova correção rápida para converter um número inteiro em uma string

Conversão simplificada de números inteiros em strings

Anteriormente, quando você precisava converter um número inteiro em uma string, o GoLand primeiro sugeria a correção rápida Convert to ‘string’. Para concluir a conversão corretamente, você precisaria de outra correção rápida: Convert integer to string using strconv.Itoa() call.

Simplificamos esse fluxo de trabalho, e agora o GoLand sugere a correção rápida de chamada Convert integer to string using strconv.Itoa() call imediatamente.

Usando a ação de intenção Implement interface com interfaces não exportadas

Capacidade de implementar interfaces não exportadas

A ação de intenção Implement interface agora funciona para interfaces não exportadas.

Usando uma solução rápida para remover um espaço à esquerda de uma diretiva Go

Remover espaços iniciais de diretivas Go

Agora, o GoLand tem uma inspeção e uma correção rápida que ajudará você a detectar e remover espaços iniciais em diretivas Go como //go:embed.

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

Intention Preview: mais intenções e correções rápidas com suporte

No lançamento anterior, habilitamos a funcionalidade Intention Preview por padrão.

Esse recurso permite que você veja instantaneamente como seu código será alterado depois de aplicar as sugestões do IDE.

Agora, é possível visualizar uma variedade mais ampla de ações de intenção e correções rápidas, entre elas: Introduce local variable, Create variable/global variable, Create constant/global constant, Create field, Merge declaration up, Delete all unused parameters, Create function, Create method, Fill all fields.

Melhorias de desempenho

Processo Scanning files to index no modo inteligente

Melhoramos a experiência de inicialização do IDE executando o processo Scanning files to index… no modo inteligente, o que disponibiliza toda a gama de funcionalidades do IDE muito mais cedo no processo de inicialização. Ao abrir um projeto, o GoLand usa caches existentes da sua sessão anterior com o projeto e procura simultaneamente arquivos para indexar. Se nenhuma alteração for encontrada na verificação, o IDE estará totalmente pronto para você trabalhar, eliminando os atrasos que antes eram causados pela indexação na inicialização.

Sugestão para redefinir as configurações do Windows Defender

Há uma nova notificação acionada quando o Windows Defender com proteção em tempo real está em execução. Como essas verificações de antivírus podem diminuir significativamente a velocidade do IDE, o GoLand sugere adicionar determinadas pastas à lista de exclusões do Defender. A notificação fornece opções ou para reajustar essas configurações automaticamente ou para verificar primeiro as instruções de configuração do Defender e fazer isso manualmente.

Editor

O número de implementações de interface é mostrado no editor

Code Vision: Implementações de interfaces

Atualizamos o recurso Code Vision. O GoLand agora mostra o número de implementações para uma interface e suas especificações de método.

Na versão anterior, introduzimos usos exibidos perto de todas as funções e tipos, mostrando com que frequência a função ou o tipo é referenciado no projeto atual. Além disso, os autores do código são exibidos quando a integração de controle de versão está habilitada.

Criando uma inspeção personalizada baseada em regexp

Inspeções personalizadas baseadas em RegExp

Agora, você pode usar expressões regulares para criar suas próprias inspeções de busca e substituição. Essas inspeções podem ser particularmente úteis para realçar problemas baseados em estilo ou em formatação.

Acesse Settings | Editor | Inspections e pressione o ícone +. Selecione Add RegExp Search Inspection na lista, e você será direcionado para uma caixa de diálogo na qual pode configurar sua nova inspeção. Selecione a linguagem desejada, use as dicas do painel à esquerda para criar uma RegExp e designe a substituição necessária. Você também pode especificar como deseja que o IDE as realce no projeto.

Link aprimorado para o Go Playground é mostrado no GoLand

Go Playground: parâmetro version na URL compartilhada

Na versão 2022.3, integramos a funcionalidade Go Playground ao GoLand.

Aprimoramos esse recurso nessa versão. Em primeiro lugar, as URLs compartilhadas agora incluem o parâmetro version se você escolher a versão de desenvolvimento ou versões anteriores.

Também adicionamos uma opção para desativar a janela pop-up que solicita sua permissão para compartilhar código no Playground. Você pode desabilitá-la em Settings | Go | Ask before sharing in Go Playground.

Uma configuração que permite controlar o posicionamento do conteúdo colado

Opção para especificar o posicionamento do conteúdo colado

Ajustamos a experiência do usuário ao colar uma linha que foi copiada ou cortada sem seleção. Agora, existe uma configuração especial que permite controlar o posicionamento do conteúdo colado.

Em Settings | Advanced Settings, localize a seção Editor e selecione o comportamento desejado para a ação Paste na lista suspensa.

Espaços em branco são mostrados como pontos no editor quando o código é selecionado

Opção para mostrar espaços em branco apenas no código selecionado

Há uma nova caixa de seleção Selection em Settings | Editor | General | Appearance | Show Whitespace que permite definir essa configuração de forma que o IDE mostre espaços em branco como pequenos pontos somente quando você seleciona o código.

A ortografia de hashes e valores especiais não é sublinhada no editor

Sem verificação ortográfica para hashes e valores especiais

Atualizamos a inspeção Typo para que ela não verifique mais a ortografia de hashes e valores especiais e não os marque como contendo erros ortográficos. Essa atualização abrange os seguintes valores:

  • Valores hexadecimais Md5, Sha1 e Sha256.
  • Valores de integridade Sha384 e Sha512 codificados em base64 com o prefixo shaNNN.
  • Tokens JWT.
O novo grupo Call é mostrado na janela de ferramentas Find Usages

O novo grupo Call em Find Usages

Introduzimos um novo grupo Find Usages para chamadas de função: o grupo Call.

Também implementamos algumas correções para como o uso de elementos de código genérico é representado na janela Find Usages.

Experiência do usuário

Usando a funcionalidade de zoom no GoLand para aumentar o tamanho de todos os elementos da interface do usuário

Zoom do IDE inteiro

Agora é possível ampliar e reduzir o GoLand, aumentando ou diminuindo o tamanho de todos os elementos da IU de uma só vez. No menu principal, selecione View | Appearance | Switch Zoom IDE e ajuste o tamanho do IDE.

A configuração Remember size for each tool window é exibida na seção Appearance

Nova configuração Remember size for each tool window

Introduzimos uma nova opção de layout que permite unificar a largura das janelas de ferramentas laterais ou manter a capacidade de ajustar livremente seus tamanhos conforme você personaliza seu layout. A nova caixa de seleção Remember size for each tool window está disponível em Settings | Appearance | Appearance & Behavior | Tool Windows.

Na nova IU, essa configuração está desativada por padrão, o que significa que as janelas de ferramentas são exibidas com uma largura unificada, e seus tamanhos permanecem constantes quando você alterna entre elas. Na IU antiga, essa opção está ativada, então as janelas de ferramentas têm larguras diferentes, embora você possa optar por alinhá-las a qualquer momento simplesmente desativando a configuração.

Organizando as janelas de ferramentas e salvando os layouts

Salvar múltiplos layouts de janela de ferramentas

Agora, você pode salvar e gerenciar vários layouts de janela de ferramentas e alternar entre eles quando necessário.

Para salvar um novo layout, organize as janelas de ferramentas como desejar e acesse Window | Layouts | Save Current Layout as New. Depois de ajustar a disposição, você poderá atualizar a configuração usada atualmente com a opção Save Changes in Current Layout ou salvar essas alterações para outro layout personalizado. Para ativar um layout salvo, localize-o na lista em Window | Layouts, passe o cursor sobre seu nome e clique em Apply.

Essas configurações permitem predefinir o comportamento de Actions on Save

Configuração para definir Actions on Save para novos projetos

Esta versão adiciona uma opção para predefinir o comportamento de Actions on Save para novos projetos.

Para isso, acesse File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save e selecione quais ações você deseja que sejam acionadas ao salvar alterações em seus projetos.

A nova IU

No ano passado, apresentamos uma interface de usuário nova e mais minimalista para o GoLand e outros IDEs da JetBrains. Refinamos ainda mais a nova IU com base nos seus comentários. Leia para saber mais sobre as principais mudanças na nova IU que chegaram neste lançamento. Você pode experimentar nossa nova IU marcando a caixa de seleção New UI em Settings | Appearance & Behavior.

Acesse esta página para saber mais sobre a nova UI.

Ativação do modo compacto

Modo Compacto

Para melhorar a experiência do usuário com nossa nova IU em telas menores, introduzimos o Compact Mode, que fornece um visual mais consolidado devido à diminuição da altura de barras de ferramentas e cabeçalhos de janelas de ferramentas, espaçamentos e preenchimentos reduzidos e ícones e botões menores.

Para ativar o Compact Mode, acesse o menu View e selecione Appearance | Compact Mode.

Além disso, a barra de ferramentas superior não está mais visível nos modos Zen e Distraction Free.

Janelas de ferramentas divididas verticalmente

Divisão vertical nas janelas de ferramentas

Introduzimos na nova interface de usuário a opção de dividir a área da janela de ferramentas, para que você possa organizar essas janelas de forma conveniente.

Para adicionar uma janela de ferramentas a essa área e colocá-la na parte inferior, arraste o ícone dessa janela pela barra lateral e solte-o abaixo do separador. Como alternativa, você pode clicar com o botão direito do mouse em um ícone para chamar o menu de contexto e atribuir a nova posição para uma janela de ferramentas usando a ação Move to.

Usando abas de projeto para alternar entre projetos no GoLand

Abas de projeto para usuários do macOS

Agora, quando você tiver vários projetos abertos, poderá facilmente alternar entre eles usando abas de projeto exibidas abaixo da barra de ferramentas principal. Para fazer isso, acesse Window | Merge All Project Windows.

As abas são mostradas no menu suspenso

O recurso Show Hidden Tabs voltou

Adicionamos o recurso Show Hidden Tabs na nova IU. Agora você tem um menu suspenso que mostra a lista completa de guias abertas, já que elas poderiam estar ocultas antes.

Um painel exibe os nomes dos arquivos

Painel de nome de arquivo visível quando as abas estão ocultas

Ajustamos a experiência do usuário com a nova IU, adicionando um painel que exibe o nome do arquivo que está aberto no momento em que as abas do editor estão ocultas.

O widget Run reformulado é mostrado no editor

Widget Run reformulado

Reformulamos o widget Run na parte superior da janela do IDE. Com os ícones agora coloridos em verde (em vez de a área ao redor deles ser destacada em cores), a aparência é mais sutil e mais agradável aos olhos.

Docker

Usando complementação para um nome de container no código de testcontainers

Complementação para testcontainers

Neste build, adicionamos complementação para nomes de container quando você usa o pacote testcontainers-go.

Depois de digitar o nome do contêiner, você pode usar a ação Pull Docker image que foi implementada anteriormente.

Mensagens de log de diferentes containers são mostradas na mesma janela

Log combinado de todos os containers do Docker Compose

A aba Dashboard do nó do Docker-compose agora reúne logs de cada container do Docker Compose e os exibe em um só lugar, atualizados em tempo real.

As configurações para conexão com o Azure Registry são mostradas no IDE

Suporte para o Azure Container Registry

Agora, você pode se conectar facilmente ao Azure Container Registry. Acesse Settings | Build, Execution, Deployment | Docker | Docker Registry e configure-o selecionando a opção Docker V2 no campo de entrada do Registry.

Configurações para aplicar a opção de montagem :z para vincular volumes no SELinux são mostradas

Nova configuração para aplicar a opção de montagem :z para associar volumes no SELinux

Agora, você pode adicionar sinalizadores de configuração :z a montagens de associação do Docker, o que permite conectar volumes a containers do Docker em estações de trabalho SELinux. Para habilitar essa funcionalidade, acesse Settings | Advanced Settings | Docker.

Kubernetes

Criando um novo recurso do Kubernetes

Templates de arquivo no pop-up New Kubernetes Resource

Para facilitar a criação de novos arquivos do Kubernetes, adicionamos uma nova ação, Kubernetes Resource, ao menu New que é exibido quando você clica com o botão direito do mouse na janela de ferramentas Project.

Depois de selecionar a opção Kubernetes Resource, você verá um pop-up com uma lista dos tipos de recursos mais populares, como Pod, Deployment e ConfigMap, entre outros.

Adicionando um novo Kubernetes Secrets

Ação para criar novos Kubernetes Secrets

Introduzimos uma nova caixa de diálogo para criar Kubernetes Secrets.

Para definir um novo Secret, você pode inserir uma chave e um valor manualmente. Como alternativa, você pode especificar um arquivo cujo conteúdo será usado para o valor do Secret resultante.

Usando marcadores de alteração codificados por cores

Marcadores de alteração codificados por cores para recursos carregados a partir do cluster

Quando você usa a ação View YAML para recursos de um cluster e faz qualquer alteração no arquivo aberto, o IDE realça todas as suas edições com marcas codificadas por cores na medianiz. Dessa forma, você pode ter certeza de que as alterações serão feitas nas partes necessárias do recurso antes de as aplicar de volta ao cluster.

Usando a funcionalidade Compare with Cluster

Além disso, ao usar o ícone Compare with Cluster, você pode abrir uma janela de diff completa que buscará a versão atual do recurso do cluster e a comparará com a versão local.

Abrindo um arquivo kubeconfig no editor a partir da tela Services

Melhor experiência do usuário com arquivos kubeconfig

Agora, você pode acessar facilmente um arquivo kubeconfig na tela Services e abri-lo no editor. Se você alterar um arquivo kubeconfig fora do IDE, o GoLand detectará a alteração e atualizará automaticamente a configuração na janela de ferramentas Services. Além disso, o IDE agora oferece suporte ao realce e à complementação de código para arquivos kubeconfig.

Atribuindo um atalho para a ação Forward Ports

Capacidade de atribuir atalhos personalizados para ações na janela Services

Agora, você pode atribuir atalhos para a maioria das ações do Kubernetes na janela Services, como Forward Ports, Delete Resource e Describe Resource, entre outros. Para definir seus atalhos personalizados, acesse Settings | Keymap | Plugins | Kubernetes.

Markdown

Usando uma ação de intenção para reformatar uma tabela no Markdown

Reformatar tabela

Uma nova ação de intenção permite corrigir a formatação de tabelas em arquivos Markdown. Você pode acessar a correção rápida por meio do atalho Alt+Enter ou clicando no ícone de lâmpada amarela e selecionando Reformat table na lista exibida.

Usando a ação do editor Fill Paragraph para quebrar uma linha longa em várias linhas

Fill Paragraph

A ação do editor Fill Paragraph agora é compatível com arquivos Markdown, permitindo que você quebre textos longos em várias linhas do mesmo comprimento. Para fazer isso, defina o cursor dentro do parágrafo que você deseja editar e chame a ação no menu Edit ou procure o comando Fill Paragraph usando o Search everywhere (Shift duplo) e execute-o.

Uma página com as configurações das Markdown Smart Keys

Nova página de configurações Smart Keys

Adicionamos uma página dedicada para configurar e editar suas preferências de Markdown em Settings | Editor | General | Smart Keys. Essa página deve facilitar o gerenciamento das suas preferências, pois fornece caixas de seleção separadas para vários recursos do editor, substituindo a única caixa de seleção armazenada anteriormente em Settings | Languages & Frameworks.

Controle de versão

Navegação entre branches no GoLand

Pop-up Branches melhorado

Melhoramos a usabilidade do pop-up Branches. Por exemplo, ficou mais fácil navegar entre branches, pois eles são agrupados e armazenados em listas expansíveis.

Usando complementação na janela pop-up Create New Branch

Complementação no pop-up Create New Branch

Implementamos a complementação no pop-up Create New Branch. Pressione Ctrl+espaço, e o IDE sugerirá prefixos relevantes com base nos nomes de branches locais existentes.

As cores de objetos na janela Structure mudam quando um novo código é adicionado

Dicas de cores de status do VCS na janela da ferramenta Structure

Para tornar o rastreamento de alterações nos arquivos mais conveniente, adicionamos dicas de cores à janela de ferramentas Structure. Os nomes dos objetos modificados agora ficarão azuis, e os nomes dos objetos recém-adicionados aparecerão na janela de ferramentas realçados em verde.

A janela Notifications mostra o resultado de uma verificação de pré-commit

Verificações de commit em segundo plano

Reformulamos o comportamento das verificações de commit para o Git e o Mercurial, para acelerar o processo geral de commit. Agora, verificações são feitas em segundo plano depois do commit, mas antes do push.

Janela de solicitação pull no GoLand

Workflow de revisão de código aprimorado para GitHub

Reformulamos a janela de ferramentas Pull Request. Agora, ela apresenta uma aba dedicada para cada solicitação pull que você abre. A aba exibe instantaneamente a lista de arquivos alterados, mas agora fornece menos informações do que antes. Isso permite que você se concentre melhor na sua tarefa atual. Agora também existe um botão dedicado para executar facilmente a ação considerada a mais importante com base no estado atual da solicitação pull.

Desenvolvimento Web

A página de plug-ins com o plug-in Astro

Suporte ao Astro

O suporte para Astro chegou no GoLand. Você pode obtê-lo através do nosso novo plug-in Astro, que pode ser instalado em Settings | Plugins. Esse plug-in oferece funcionalidades básicas, incluindo realce de sintaxe, complementação de código com importações automáticas, refatorações, navegação, formatação correta e muito mais.

Convertendo strings em literais de template

Conversão automática de strings em literais de template

O GoLand agora transformará automaticamente suas strings com aspas simples ou duplas em literais de template sempre que você digitar ${. Isso funciona para strings brutas, bem como para propriedades JSX.

Suporte ao TypeScript em expressões de modelos do Vue

Adicionamos suporte ao TypeScript nos templates do Vue quando você define o atributo lang em uma tag script como ts. Anteriormente, JavaScript era sempre usado, ignorando o atributo lang na tag script.

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