Sobre o VisualStudio.Extensibility (versão prévia)

O VisualStudio.Extensibility é uma nova estrutura para o desenvolvimento de extensões do Visual Studio, com foco principal em extensões executadas fora do processo do IDE a fim de melhorar o desempenho e a confiabilidade. Apresenta uma API moderna e assíncrona que foi otimizada e cuidadosamente projetada para maximizar a produtividade dos desenvolvedores. O VisualStudio.Extensibility está sendo desenvolvido e disponível como versão prévia.

A versão prévia atual possibilita que você desenvolva uma ampla variedade de extensões para o Visual Studio, incluindo a criação de comandos, o uso de código ou texto no editor, a exibição de prompts ou caixas de diálogo para o usuário, a criação de visualizadores de depurador e muito mais!

O objetivo do VisualStudio.Extensibility é resolver muitos dos problemas que os desenvolvedores enfrentam durante o uso e a programação de extensões no Visual Studio. A programação de extensões com o VisualStudio.Extensibility oferece os seguintes benefícios:

  • Maior confiabilidade: o Visual Studio permanece responsivo, sem travar em caso de falha ou interrupção de uma extensão.
  • Redução da complexidade da API: o VisualStudio.Extensibility oferece arquitetura simplificada, APIs consistentes e documentação clara.
  • Funcionalidade de carregamento frequente: não é necessário reiniciar o Visual Studio ao instalar as extensões.

No final, você poderá usar o SDK do VisualStudio.Extensibility para programar qualquer extensão possível utilizando o SDK do VS. No entanto, até esse momento chegar, poderão ocorrer situações em que a funcionalidade necessária para a sua extensão ainda não estará disponível no VisualStudio.Extensibility. Se isso acontecer, você poderá usar o SDK do VisualStudio.Extensibility com o SDK do VS em execução no processo para cobrir qualquer escassez de recursos. Para saber mais, confira Extensões em processo.

As informações mais recentes sobre o VisualStudio.Extensibility estão disponíveis no repositório do GitHub VSExtensibility, na seção de anúncios.

Artigo Descrição
Instalar o VisualStudio.Extensibility Baixe e instale a versão prévia mais recente do VisualStudio.Extensibility.
Introdução Utilize os guias de início rápido e tutoriais para iniciantes caso nunca tenha desenvolvido uma extensão antes.
Conceitos Crie um modelo mental de como o SDK e as extensões funcionam.
Visões gerais Leia visões gerais de cada área principal de funcionalidades para saber mais.
Amostras Confira o exemplo de código que demonstra os principais recursos.
Referência de API Confira a documentação da API do VisualStudio.Extensibility.
APIs experimentais e alterações interruptivas Conheça a nossa abordagem para APIs estáveis versus experimentais e confira as alterações interruptivas da versão anterior.
Problemas conhecidos Visualize os problemas conhecidos com o SDK do VisualStudio.Extensibility.
Tópicos avançados Conheça os detalhes de implementação do SDK do VisualStudio.Extensibility.

Instalar o VisualStudio.Extensibility

A versão prévia atual do VisualStudio.Extensibility funciona com o Visual Studio 2022 versão 17.9 Versão Prévia 1 ou posterior com necessidade de instalação da carga de trabalho Visual Studio extension development.

Introdução

Os seguintes artigos podem ajudar você a obter orientações e começar a usar:

Para entender como trabalhar com o VisualStudio.Extensibility, é recomendável ter uma compreensão abrangente sobre programação assíncrona com async e await e injeção de dependência. Além disso, a IU no VisualStudio.Extensibility se baseia no Windows Presentation Foundation (WPF), então pode ser conveniente conferir a documentação do WPF.

Conceitos

Se você já conhecer o SDK do Visual Studio, consulte Introdução ao VisualStudio.Extensibility para usuários do SDK do VS.

Para criar um modelo mental de como as extensões do Visual Studio funcionam, consulte Partes de uma nova extensão do Visual Studio.

Para saber o que está incluído no SDK, consulte Áreas funcionais do SDK.

Quando e onde uma extensão deve ser exibida no IDE? As extensões do Visual Studio são exibidas no IDE quando determinadas condições são atendidas. Para ter controle sobre como e quando sua extensão é exibida no IDE, consulte Restrições de ativação com base em regras.

As extensões do Visual Studio disponibilizam recursos ao Visual Studio por meio de contribuições. Para obter mais informações, confira Contribuições.

Saiba mais sobre o modelo de IU remota usado no VisualStudio.Extensibility.

Visões gerais

Confira uma visão geral das áreas do SDK que poderão ser necessárias em projetos de desenvolvimento de extensões.

  • Consulte Comandos sobre como criar comandos e expô-los aos usuários no IDE.
  • Consulte Extensões do editor sobre como trabalhar com o conteúdo de arquivos e documentos.
  • Consulte Documentos sobre como trabalhar com a representação em memória desses próprios documentos.
  • Consulte Janela de saída sobre como utilizar a janela de saída em uma extensão.
  • Consulte Janelas de ferramentas sobre como trabalhar com janelas de ferramentas e encaixáveis no IDE do Visual Studio.
  • Consulte Prompts de usuário sobre como utilizar prompts com botões personalizáveis a fim de interagir com o usuário.
  • Consulte Caixas de diálogo sobre como utilizar caixas de diálogo com a IU personalizada para interagir com o usuário.
  • Consulte Visualizadores do depurador sobre como criar visualizações de dados personalizadas ao depurar.
  • Consulte Consulta do projeto sobre como consultar ou modificar informações sobre projetos e soluções.
  • Consulte Provedor de servidor de linguagem sobre como trabalhar com servidores de linguagem/LSP e obter suporte a linguagens adicionais.

Exemplos e tutoriais

Uma solução do Visual Studio que contém todos os exemplos está disponível em Samples.sln.

Amostra Descrição
Manipulador de comandos simples Demonstra os conceitos básicos de como trabalhar com comandos. Consulte também o tutorial Criar sua primeira extensão do Visual Studio.
Inserir extensão guid Ensina a inserir texto ou código no editor de código, configurar um comando com uma condição de ativação específica e utilizar um arquivo de recurso para localização. Consulte também o tutorial Criar uma extensão simples.
Parentalidade dos comandos Ensina a criar um comando que pode ser associado a diferentes aspectos do IDE.
Seletor de documentos Ensina a criar uma extensão do editor que só se aplica aos arquivos que correspondem a um padrão de caminho de arquivo.
janela Saída Apresenta o uso mais básico da API da janela de saída
Janela de ferramenta Ensina a criar uma janela de ferramenta e preenchê-la com conteúdo.
Prompt de usuário Ensina a exibir um prompt para o usuário.
Caixa de diálogo Ensina a exibir uma caixa de diálogo com IU personalizada para o usuário.
Margem de contagem de palavras Ensina a criar uma extensão de margem do editor que exibe a contagem de palavras de um documento.
Linter de markdown Mostra como vários componentes podem interagir entre si em uma extensão e como diferentes áreas do Visual Studio podem ser ampliadas.
Consulta do projeto Apresenta diversos tipos de consultas ao sistema do projeto que podem ser feitas.
Removedor de comentários Ensina a consumir os serviços do SDK do Visual Studio por meio de injeção de dependência do .NET e usar as APIs do VisualStudio.Extensibility para comandos, prompts e relatório de progresso.
RegexMatchDebugVisualizer Ensina a utilizar a IU remota para criar um visualizador do depurador a fim de visualizar correspondências de expressão regular que serão inicializadas em uma janela de caixa de diálogo modal.
MemoryStreamDebugVisualizer Ensina a criar um visualizador do depurador para visualizar os objetos MemoryStream que são inicializados em uma janela de ferramenta não modal.
RustLanguageServiceProvider Ensina a criar uma extensão de provedor de servidor de linguagem Rust que adiciona o IntelliSense e dicas de ferramenta ao abrir um arquivo rust.

APIs experimentais e alterações interruptivas

A partir da versão 17.9, a grande maioria das nossas APIs já podem ser consideradas estáveis. Isto é, não planejamos fazer nenhuma alteração nessas APIs. Qualquer alteração interruptiva que precise ser feita, por exemplo, em resposta ao feedback dos usuários sobre a usabilidade, será comunicada formalmente e com aviso prévio considerável na nossa página de alterações interruptivas.

Algumas das nossas APIs ainda não alcançaram esse nível de estabilidade, e os motivos são os seguintes:

  • A área de recursos é nova, por isso são esperados recursos e alterações adicionais em versões futuras.
  • A API é nova, e queremos incorporar o feedback dos usuários no projeto antes de marcá-la como estável.
  • Recebemos feedback de que uma API específica é difícil de usar, por isso estamos planejando atualizá-la em versões futuras.

Essas APIs são explicitamente rotuladas com o atributo [Experimental] para ajudar os criadores de extensões a criarem extensões com confiança no SDK.

Para obter mais informações, incluindo como usar as APIs experimentais, consulte a nossa página APIs experimentais.

Problemas conhecidos

Agradecemos seu feedback e relatos de bugs no nosso Rastreador de Problemas e estamos trabalhando para resolver todos os problemas encontrados no SDK.

Acesse a nossa página Problemas Conhecidos para obter informações sobre todos os problemas conhecidos atuais.

Tópicos avançados

Artigo Descrição
Interface do usuário remota avançada Informações detalhadas sobre o modelo de IU remota.
Extensões em processo Uma rápida explicação das diferentes opções de uso do SDK do VisualStudio.Extensibility em processo.

Documentos API

Enviar comentários

Estamos sempre em busca de feedback e engajamento. A fase de versão prévia é um ótimo período para receber comentários da comunidade que vão nos ajudar a identificar problemas e oportunidades. Para fornecer feedback e relatar bugs, acesse o nosso Rastreador de Problemas.