Acerca de VisualStudio.Extensibility (versión preliminar)

VisualStudio.Extensibility es un nuevo marco para desarrollar extensiones de Visual Studio que se centra principalmente en extensiones que se ejecutan fuera de proceso desde el IDE para mejorar el rendimiento y la fiabilidad. Cuenta con una API moderna y asincrónica que se ha simplificado y diseñado cuidadosamente para maximizar la productividad de los desarrolladores. VisualStudio.Extensibility está en desarrollo activo y está disponible como versión preliminar.

Con la versión preliminar actual, puede desarrollar una amplia gama de extensiones para Visual Studio, entre las que se incluyen la creación de comandos, el trabajo con código o texto en el editor, la visualización de mensajes o diálogos al usuario, la creación de visualizadores del depurador, y mucho más.

VisualStudio.Extensibility tiene como objetivo abordar muchos de los problemas que experimentan los desarrolladores al utilizar y escribir extensiones en Visual Studio. Escribir extensiones con VisualStudio.Extensibility proporciona las siguientes ventajas:

  • Mayor fiabilidad: Visual Studio seguirá respondiendo y no se bloqueará si una extensión se bloquea o deja de responder.
  • Complejidad reducida de la API: VisualStudio.Extensibility tiene una arquitectura simplificada, API coherentes y documentación clara.
  • Funcionalidad de carga activa: No es necesario reiniciar Visual Studio al instalar extensiones.

Con el tiempo, podrá utilizar el SDK de VisualStudio.Extensibility para escribir cualquier extensión que pueda escribir con el SDK de VS. Sin embargo, hasta que no llegue ese momento, podría encontrarse con situaciones en las que la funcionalidad que necesita en la extensión aún no esté disponible en VisualStudio.Extensibility. En ese caso, puede utilizar el SDK de VisualStudio.Extensibility junto con el SDK de VS que se ejecuta en proceso para cubrir cualquier vacío funcional. Para obtener más información, consulte Extensiones en proceso.

Puede encontrar la información más reciente sobre VisualStudio.Extensibility en el repositorio de GitHub VSExtensibility en los anuncios.

Artículo Descripción
Instalar VisualStudio.Extensibility Descargue e instale la versión preliminar más reciente de VisualStudio.Extensibility.
Introducción Empiece con los inicios rápidos para principiantes y los tutoriales introductorios si nunca ha desarrollado una extensión previamente.
Conceptos Hágase una idea de cómo funcionan el SDK y las extensiones.
Temas de introducción Para obtener más información, lea la información general del área principal de cada funcionalidad.
Muestras Explore el código de ejemplo que muestra las características principales.
Referencia de las API Examine la documentación de la API de VisualStudio.Extensibility.
API experimentales y cambios importantes Obtenga información sobre nuestro enfoque para las API estables frente a las experimentales y sobre los cambios importantes de la versión anterior.
Problemas conocidos Consulte los problemas conocidos que se suelen producir con el SDK de VisualStudio.Extensibility.
Temas avanzados Obtenga información sobre la implementación del SDK de VisualStudio.Extensibility.

Instalar VisualStudio.Extensibility

La versión preliminar actual de VisualStudio.Extensibility funciona con la Versión preliminar 1 de Visual Studio 2022 versión 17.9 o posterior y con la carga de trabajo Visual Studio extension development que se va a instalar.

Introducción

Los siguientes artículos le ayudarán a recibir orientación y a empezar:

Para comprender cómo trabajar con VisualStudio.Extensibility, se recomienda una comprensión exhaustiva de la programación asincrónica con async y await y la inserción de dependencias. Además, la interfaz de usuario de VisualStudio.Extensibility se basa en Windows Presentation Foundation (WPF), por lo que es posible que desee revisar la documentación de WPF.

Conceptos

Si ya conoce el SDK de Visual Studio, consulte Introducción a VisualStudio.Extensibility para usuarios de VSSDK.

Para que se haga una idea de cómo funcionan las extensiones de Visual Studio, consulte Componentes de una nueva extensión de Visual Studio.

Para averiguar lo que se incluye en el SDK, consulte Áreas funcionales del SDK.

¿Cuándo y dónde debe aparecer la extensión en el IDE? Las extensiones de Visual Studio aparecen en el IDE cuando se cumplen determinadas condiciones. Para tener control sobre cómo y cuándo aparece la extensión en el IDE, consulte Restricciones de activación basadas en reglas.

Las extensiones de Visual Studio hacen que sus características estén disponibles para Visual Studio mediante contribuciones. Para más información, consulte Contribuciones.

Obtenga información sobre el modelo de Interfaz de usuario remota utilizado en el VisualStudio.Extensibility.

Temas de introducción

Lea una introducción a las distintas áreas del SDK que podría necesitar para los proyectos de desarrollo de extensiones.

  • Crear comandos y exponerlos a los usuarios en el IDE; consulte Comandos.
  • Trabajar con los contenidos de archivos y documentos; consulte Extensiones del editor.
  • Trabajar con la representación en memoria de dichos documentos; consulte Documentos.
  • Utilizar la ventana de salida en una extensión; consulte Ventana de salida.
  • Trabajar con ventanas de herramientas, ventanas acoplables en el IDE de Visual Studio; consulte Ventanas de herramientas.
  • Utilizar mensajes con botones personalizables para interactuar con el usuario; consulte Mensajes de usuario.
  • Utilizar cuadros de diálogo con la interfaz de usuario personalizada para interactuar con el usuario; consulte Cuadros de diálogo.
  • Crear visualizaciones de datos personalizadas al depurar; consulte Visualizadores del depurador.
  • Consultar o modificar la información sobre proyectos y soluciones; consulte Consulta de proyectos.
  • Trabajar con servidores de lenguaje y proveedores de servidores de lenguaje (LSP) para brindar compatibilidad con idiomas adicionales; consulte Proveedor de servidor de lenguaje.

Ejemplos y tutoriales

Puede encontrar una solución de Visual Studio que contenga todos los ejemplos en Samples.sln.

Ejemplo Descripción
Controlador de comandos simples Muestra los conceptos básicos de trabajar con comandos. Consulte también el tutorial Creación de la primera extensión de Visual Studio.
Extensión para insertar guid Muestra cómo insertar texto o código en el editor de código, cómo configurar un comando con una condición de activación específica y cómo utilizar un archivo de recursos para la localización. Consulte también el tutorial Creación de una extensión simple.
Command parenting Muestra cómo crear un comando que se pueda establecer como elemento primario en distintos aspectos del IDE.
Selector de documentos Muestra cómo crear una extensión del editor que solo se aplique a los archivos que coincidan con un patrón de ruta de acceso de archivos.
Resultados (Ventana) Muestra el uso más básico de la API de la ventana de salida.
Ventana de herramientas Muestra cómo crear una ventana de herramientas y rellenarla con contenido.
Mensaje de usuario Muestra cómo mostrar un mensaje al usuario.
Diálogo Muestra cómo mostrar un cuadro de diálogo con la interfaz de usuario personalizada al usuario.
Margen de recuento de palabras Muestra cómo crear una extensión de margen del editor que muestre el recuento de palabras en un documento.
Linter de Markdown Muestra cómo pueden interactuar varios componentes juntos dentro de una extensión y cómo se pueden ampliar diferentes áreas de Visual Studio.
Consulta de proyectos Muestra varios tipos diferentes de consultas del sistema del proyecto que puede realizar.
Eliminador de comentarios Muestra cómo consumir servicios del SDK de Visual Studio a través de la inserción de dependencias de .NET y cómo utilizar las API de VisualStudio.Extensibility para comandos, mensajes e informes de progreso.
RegexMatchDebugVisualizer Muestra cómo utilizar la Interfaz de usuario remota para crear un Visualizador de depurador para poder ver las coincidencias de expresiones regulares que se iniciarán en una ventana de diálogo modal.
MemoryStreamDebugVisualizer Muestra cómo crear un Visualizador de depurador para poder ver objetos MemoryStream que se inicien en una ventana de herramientas no modal.
RustLanguageServiceProvider Muestra cómo crear una extensión de proveedor de servidor de lenguaje Rust que añada IntelliSense e información sobre herramientas cuando se abra un archivo rust.

API experimentales y cambios importantes

A partir de nuestra versión 17.9, estamos listos para etiquetar la gran mayoría de nuestras API como estables. En otras palabras, no tenemos previsto realizar cambios importantes en estas API. Los cambios importantes que deban llevarse a cabo, por ejemplo, en respuesta a los comentarios de los usuarios sobre la facilidad de uso, se comunicarán formalmente y con mucha antelación en nuestra página de cambios importantes.

Algunas de nuestras API aún no cumplen los requisitos para considerarse estables debido a alguna de las siguientes razones:

  • El área de características es nueva y se esperan cambios y características adicionales en versiones futuras.
  • La API es nueva y nos gustaría recibir comentarios de los usuarios para incorporar posibles mejoras en el diseño antes de marcar dicha API como estable.
  • Hemos recibido comentarios de que una API en concreto es difícil de utilizar, por lo que prevemos actualizarla en versiones futuras.

Para estas API, las hemos etiquetado explícitamente con el atributo [Experimental] para ayudar a los autores de extensiones a crear sus extensiones con confianza en el SDK.

Para obtener más información, incluido cómo utilizar API experimentales, consulte nuestra página de API experimentales.

Problemas conocidos

Agradecemos sus comentarios e informes de errores en nuestro Seguimiento de problemas y nos esforzamos por solucionar los problemas detectados en el SDK.

Visite nuestra página Problemas conocidos para obtener información sobre los problemas conocidos actuales.

Temas avanzados

Artículo Descripción
Interfaz de usuario remota avanzada Información detallada sobre el modelo de interfaz de usuario remota
Extensiones en proceso Tutorial rápido sobre diferentes opciones para utilizar el SDK de VisualStudio.Extensibility en proceso

Documentación de API

Enviar comentarios

Agradecemos que los usuarios nos hagan llegar sus comentarios y participen de forma activa. La fase de versión preliminar es un buen momento para obtener información de la comunidad para ayudarnos a identificar problemas y oportunidades de mejora. Puede hacernos llegar sus comentarios e informar sobre los errores que haya detectado en nuestro Seguimiento de problemas.