Microsoft lança VS Code 1.51 com guias fixas aprimoradas e muito mais
11 minutos. ler
Atualizado em
Leia nossa página de divulgação para descobrir como você pode ajudar o MSPoweruser a sustentar a equipe editorial Saiba mais
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.
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.
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 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”:
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 para0
para ativar o recurso o tempo todo, ou-1
para desativá-lo. Padrões para30
.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.
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.GitHub LightName, Fonte: FiraCode
No exemplo acima, selecionar "Inserir" resulta em
Math.floorceil
e selecionar “Substituir” resulta emMath.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.
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.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.
Git: Tag comandos no submenu#
Comandos Git relacionados a tags foram adicionados ao ... Menu 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.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
Opção de formatação de chave vazia para JavaScript e TypeScript#
O novo
javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
etypescript.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.
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.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.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.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:
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.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 emglobalState
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 parafalse
, 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