Microsoft lança VS Code 1.51 com guias fixas aprimoradas e muito mais

Ícone de tempo de leitura 11 minutos. ler


Os leitores ajudam a oferecer suporte ao MSpoweruser. Podemos receber uma comissão se você comprar através de nossos links. Ícone de dica de ferramenta

Leia nossa página de divulgação para descobrir como você pode ajudar o MSPoweruser a sustentar a equipe editorial Saiba mais

Código VS da Microsoft

Código VS da Microsoft

A Microsoft anunciou hoje o lançamento do Visual Studio Code v1.51 (atualização de outubro de 2020) com várias melhorias e correções de bugs. Esta nova atualização agora vem com caixa de sugestões redimensionável do IntelliSense, sessões persistentes de terminal remoto, guias fixas aprimoradas e muito mais. Encontre o log de alterações completo fornecido pela Microsoft abaixo.

Workbench#

Abas fixadas mais proeminentes#

As guias fixadas agora sempre mostrarão seu ícone de alfinete, mesmo quando inativas, para facilitar a identificação. Se um editor estiver fixado e contiver alterações não salvas, o ícone refletirá os dois estados.

Guias fixadas inativas mostrando ícones de pin

As árvores de extensão usam o foco personalizado#

Em vez de usar a dica de ferramenta nativa em exibições de árvore de extensão, agora usamos um foco personalizado que é consistente em várias plataformas e se encaixa melhor com o UX geral.

Passagem de árvore personalizada

Instalar uma extensão sem sincronizar#

Agora você pode instalar uma extensão sem sincronizá-la enquanto a sincronização de configurações está habilitada.

Instalar extensão sem sincronizar

 GitHub LightName

Instalar uma extensão do Explorer#

O VS Code agora suporta a instalação de um arquivo de extensão VSIX do Explorer clicando com o botão direito do mouse em um arquivo VSIX e escolhendo o Instalar extensão VSIX item do menu de contexto.

Comando de desfoque de entrada#

Um novo interno workbench.action.blur O comando agora está disponível, o que remove o foco de qualquer entrada focalizável. Você pode atribuir um atalho de teclado para este comando no Preferências de atalhos de teclado.

Terminal Integrado#

Eco local#

Fazer modificações no terminal tradicionalmente requer que as informações sejam enviadas ao processo do terminal, processadas e devolvidas ao VS Code para serem afetadas. Isso pode ser lento ao trabalhar em uma conexão ruim ou distante para um Servidor SSH or Espaço de código.

Esta versão adiciona um modo de “eco local” ao terminal, que tenta prever modificações e movimentos do cursor feitos localmente e mostrá-los na interface do usuário sem exigir uma viagem de ida e volta ao servidor. Por padrão, os caracteres previstos são exibidos como “esmaecidos”:

Gif mostrando a digitação com latência de 250ms onde os caracteres inseridos imediatamente ficam esmaecidos

Existem duas configurações que você pode usar para configurar isso:

  • terminal.integrated.localEchoLatencyThreshold configura o limite de atraso detectado, em milissegundos, no qual o eco local será ativado. Isso pode ser definido para 0 para ativar o recurso o tempo todo, ou -1 para desativá-lo. Padrões para 30.
  • terminal.integrated.localEchoStyle configura o estilo ou cor do caractere local, o padrão é dim.

IntelliSense#

Sugestões redimensionáveis#

Neste marco, fizemos várias melhorias na interface do usuário de sugestões. Em primeiro lugar, agora pode ser redimensionado. Arraste as laterais ou cantos para redimensionar o controle.

Controle de sugestões redimensionáveis

 GitHub LightName, Fonte: FiraCode

O tamanho da lista de sugestões será salvo e restaurado nas sessões. O tamanho do painel de detalhes só é salvo por sessão, pois esse tamanho tende a ser mais variável. Também o editor.suggest.maxVisibleSuggestions configuração tornou-se obsoleta.

Barra de status para sugestões#

O controle de sugestões agora também pode mostrar sua própria barra de status na parte inferior da janela. Habilite-o usando o editor.suggest.showStatusBar contexto. Isso torna a alternância de detalhes mais simples e mostra se uma conclusão dá suporte à inserção, substituição ou ambas.

Barra de status de sugestões

 GitHub LightName, Fonte: FiraCode

No exemplo acima, selecionar "Inserir" resulta em Math.floorceil e selecionar “Substituir” resulta em Math.floor.

O novo editor.suggest.insertMode A configuração permite que você defina se prefere inserir ou substituir. Quando uma sugestão oferece suporte a ambos, sua preferência será o padrão.

Mova o cursor para selecionar sugestões#

Por último, mas não menos importante, agora você pode mover o cursor enquanto as sugestões são exibidas. Por exemplo, você pode acionar sugestões no final de uma palavra, mover para a esquerda para ver mais sugestões e usar substituir para substituir a palavra.

Movendo o cursor enquanto as sugestões estão sendo exibidas

 GitHub LightName

Emmet#

Os snippets personalizados em Emmet estão de volta. Além disso, os snippets agora são atualizados automaticamente ao salvar o arquivo de snippets ou atualizar o emmet.extensionsPath criação.

Snippets personalizados do Emmet funcionando novamente

Fonte de controle#

A caixa de entrada Source Control salva o histórico de mensagens de commit#

Isso aborda um pedido de recurso para navegar no histórico de commits do SCM. pressione Up e Para baixo para exibir os commits anterior e seguinte, respectivamente. Para mover diretamente para a primeira e última posição da caixa de entrada, pressione outro em conjunto com a tecla de seta correspondente.

Depois de digitar uma mensagem na caixa de entrada do SCM e, em seguida, preparar e confirmar as alterações, pressionar a seta para cima revela a mensagem que acabou de ser confirmada

Git: Tag comandos no submenu#

Comandos Git relacionados a tags foram adicionados ao ... Menu Git.

Submenu de tags do Git

Git: comando de rebase#

Um novo Git: Ramificação de rebase… foi adicionado o comando que permite rebase de uma ramificação usando a interface do usuário.

Git: comando clone recursivo#

Com o Git: Clone (Recursivo) comando, agora você pode clonar recursivamente repositórios Git, incluindo seus submódulos Git aninhados.

Linha do tempo: renderização de código de acesso Emoji#

Agora renderizamos códigos de acesso emoji, como :smile:, na Exibição de Linha do Tempo.

Visualização da linha do tempo com emoji

Idiomas#

Seleção inteligente de redução#

Expanda e reduza a seleção em documentos Markdown usando os seguintes novos comandos:

  • Expandir: Shift+Alt+Direita
  • Encolher: Shift+Alt+Esquerda

A seleção se aplica ao seguinte e segue um padrão hierárquico tradicional:

  • Cabeçalhos
  • listas
  • Citações em bloco
  • Blocos de código cercados
  • Blocos de código HTML
  • Parágrafos

A seleção inteligente em um documento Markdown se expande de um elemento de bloco para o elemento de bloco que o contém, para o restante do conteúdo sob um cabeçalho, para o próprio cabeçalho

Opção de formatação de chave vazia para JavaScript e TypeScript#

O novo javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces e typescript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces A opção de configuração de formatação controla se os espaços são inseridos entre chaves vazias. O valor padrão para essas configurações é true. Por exemplo, para o JavaScript:

class Foo {
  doFoo() {}
}

Configuração "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": false e formatar o código resulta em:

class Foo {
  doFoo() {} // Notice that the space has been removed
}

Suporte ao navegador#

Pastas de download (Edge, Chrome)#

Aproveitando o novo Acesso ao sistema de arquivos API, Microsoft VS Code executado em um navegador agora pode oferecer uma ação de download para pastas do Explorador de Arquivos para baixar todos os arquivos e pastas para o disco.

Pasta de download

Observação: Isso requer uma versão recente do Microsoft Edge ou Google Chrome.

Notificação de espaço de trabalho aberto#

Se você abrir uma pasta que contém .code-workspace arquivos no nível superior, agora você verá uma notificação pedindo para abri-lo. Esse sempre foi o caso do Microsoft VS Code para desktop e agora também funcionará no navegador.

Notificação de espaço de trabalho aberto

Prevenir fechamento acidental#

Uma nova configuração window.confirmBeforeClose foi adicionado para mostrar uma caixa de diálogo de confirmação antes de fechar ou sair da bancada.

Os valores possíveis são:

  • keyboardOnly A confirmação só será mostrada quando você usar um atalho de teclado para fechar (por exemplo, Ctrl + W). (padrão)
  • always: A caixa de diálogo de confirmação sempre será exibida, mesmo se você fechar com um gesto do mouse.
  • never: A confirmação nunca será exibida.

Fechar caixa de diálogo de confirmação

Note: Esta configuração pode não abranger todos os casos. Os navegadores ainda podem decidir fechar uma guia ou janela sem confirmação.

Contribuições para extensões#

Solicitações de pull e problemas do GitHub#

O trabalho continua no Solicitações de pull e problemas do GitHub extensão, que permite trabalhar, criar e gerenciar solicitações pull e problemas.

Para saber mais sobre todos os novos recursos e atualizações, você pode ver o registro de alterações para o 0.22.0 liberação da extensão.

Desenvolvimento Remoto#

O trabalho continua no Extensões de desenvolvimento remoto, que permitem que você use um contêiner, máquina remota ou o Subsistema Windows para Linux (WSL) como um ambiente de desenvolvimento completo.

Destaques de recursos em 1.51 incluem:

  • Capacidade de persistir/reconectar a sessões de terminal.
  • Melhor experiência de encaminhamento de porta.

Você pode aprender sobre novos recursos de extensão e correções de bugs no Notas de versão de desenvolvimento remoto.

Recursos de visualização#

Os recursos de visualização não estão prontos para lançamento, mas são funcionais o suficiente para serem usados. Agradecemos seus comentários iniciais enquanto eles estão em desenvolvimento.

Sincronização de configurações#

A sincronização de configurações agora sincroniza o estado global das extensões. As extensões terão que fornecer o estado para sincronizar usando o recém-introduzido setKeysForSync API.

Lembrar credenciais de proxy#

Estamos reformulando a caixa de diálogo de login que mostra quando uma conexão de rede requer autenticação com um proxy. Uma nova configuração, window.enableExperimentalProxyLoginDialog: true, habilitará essa nova experiência que planejamos tornar padrão em uma versão futura.

Login proxy

 GitHub LightName

A caixa de diálogo aparecerá dentro da janela do Microsoft VS Code e oferecerá uma maneira de lembrar as credenciais para que você não precise fornecê-las sempre que iniciar o VS Code. As credenciais serão armazenadas no armazenamento de credenciais padrão do SO (chaveiro no macOS, Windows Credential Manager no Windows e chaveiro gnome no Linux).

Ainda mostramos essa caixa de diálogo apenas uma vez por sessão, mas podemos rever essa decisão no futuro. Você verá a caixa de diálogo aparecer novamente caso as credenciais selecionadas para serem lembradas não sejam válidas. Fornecê-los novamente permite que você os altere.

Por favor, habilite esta opção e avise-nos se algo não funcionar como esperado através do nosso rastreador de problemas.

Suporte ao TypeScript 4.1 beta#

O Microsoft VS Code suporta o TypeScript 4.1 beta e construções noturnas. A atualização 4.1 traz alguns novos recursos da linguagem TypeScript, como suporte para tipos condicionais recursivos, bem como melhorias de ferramentas. Uma área de foco foi adicionando suporte inicial para @see tags nos comentários JSDoc.

Para começar a usar as compilações noturnas do TypeScript 4.1, basta instalar o Extensão do TypeScript Nightly. Por favor, compartilhe comentários e deixe-nos saber se você encontrar algum bug com o TypeScript 4.1.

Criação de extensão#

Amostras de extensão atualizadas#

Atualizamos alguns de nossos amostras de extensão para incluir estilos padrão do Microsoft VS Code que são conectados aos nossos tokens de tema de cores. Isso significa que os elementos comuns (texto, botões, entradas) terão temas e corresponderão aos estilos padrão do produto. Abaixo estão as extensões que incluem isso:

Amostras de estilo de visualização da Web

Cores do Codicon nas árvores#

Com a finalização do ThemeIcon API de cores, os autores de extensão podem usar cores de tema em codicons em exibições de árvore personalizadas.

Vista em árvore com cores de ícone

Sincronizar estado global#

As extensões agora podem sincronizar seu estado global fornecendo as chaves, cujos valores devem ser sincronizados quando a Sincronização de configurações estiver habilitada, usando o recém-introduzido setKeysForSync API em globalState lembrança.

/**
 * Set the keys whose values should be synchronized across devices when synchronizing user-data
 * like configuration, extensions, and mementos.
 *
 * Note that this function defines the whole set of keys whose values are synchronized:
 *  - calling it with an empty array stops synchronization for this memento
 *  - calling it with a non-empty array replaces all keys whose values are synchronized
 *
 * For any given set of keys this function needs to be called only once but there is no harm in
 * repeatedly calling it.
 *
 * @param keys The set of keys whose values are synced.
 */
setKeysForSync(keys: string[]): void;

Visibilidade do botão de resposta do tópico de comentários#

Comentário extensões agora podem controlar a visibilidade do botão de resposta em um tópico de comentários com uma nova propriedade, CommentThread#canReply. Quando está definido para false, os usuários não verão o botão de resposta ou a caixa de comentários no tópico de comentários.

APIs de extensão propostas#

Cada marco vem com novas APIs propostas e os autores de extensões podem experimentá-las. Como sempre, queremos o seu feedback. Isto é o que você precisa fazer para experimentar uma API proposta:

  • Você deve usar Insiders porque as APIs propostas mudam com frequência.
  • Você deve ter esta linha no package.json arquivo de sua extensão: "enableProposedApi": true.
  • Copie a versão mais recente do vscode.proposed.d.ts arquivo no local de origem do seu projeto.

Você não pode publicar uma extensão que usa uma API proposta. Pode haver alterações importantes na próxima versão e nunca queremos interromper as extensões existentes.

Os provedores de intervalo dobrável alteram o evento#

Os provedores de intervalo de dobra podem sinalizar ao editor que os intervalos de dobra precisam ser atualizados usando o onDidChangeFoldingRanges evento.

Para obter mais detalhes e fornecer feedback, use problema #108929.

APIs de senha#

Como parte do trabalho contínuo em Provedores de autenticação, introduzimos a API para armazenar e recuperar informações confidenciais. Internamente, isso funciona como um wrapper do chavetar biblioteca que o VS Code usa para armazenar segredos.

/**
 * Retrieve a password that was stored with key. Returns undefined if there
 * is no password matching that key.
 * @param key The key the password was stored under.
 */
export function getPassword(key: string): Thenable<string | undefined>;

/**
 * Store a password under a given key.
 * @param key The key to store the password under
 * @param value The password
 */
export function setPassword(key: string, value: string): Thenable<void>;

/**
 * Remove a password from storage.
 * @param key The key the password was stored under.
 */
export function deletePassword(key: string): Thenable<void>;

/**
 * Fires when a password is set or deleted.
 */
export const onDidChangePassword: Event<void>;

Engenharia #

Tornando os tipos confiáveis ​​do Microsoft VS Code compatíveis#

Continuamos o esforço para tornar o VS Code “Trusted Types” compatível. O objetivo é evitar vulnerabilidades de scripts entre sites baseados em DOM. Você pode aprender mais sobre tipos confiáveis ​​em web.dev Site de tipos confiáveis e acompanhe nosso progresso problema #103699.

Fonte: Microsoft

Mais sobre os tópicos: microsoft, Código do Visual Studio 1.51, Código VS

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *