Partager via


À propos de VisualStudio.Extensibility (préversion)

VisualStudio.Extensibility est un nouveau framework pour le développement d’extensions Visual Studio qui se concentre principalement sur les extensions s’exécutant en dehors du processus de l’IDE pour une meilleure performance et fiabilité. Il dispose d’une API moderne asynchrone qui a été rationalisée et soigneusement conçue pour maximiser la productivité des développeurs. VisualStudio.Extensibility est en développement actif et est disponible en préversion.

Avec la préversion actuelle, vous pouvez développer une large gamme d’extensions pour Visual Studio, notamment la création de commandes, le travail avec du code ou du texte dans l’éditeur, l’affichage de messages ou de boîtes de dialogue à l’utilisateur, la création de visualiseurs de débogueur, et bien plus encore !

VisualStudio.Extensibility vise à résoudre bon nombre des problèmes rencontrés par les développeurs lors de l’utilisation et de l’écriture d’extensions dans Visual Studio. L’écriture d’extensions à l’aide de VisualStudio.Extensibility offre les avantages suivants :

  • Fiabilité accrue : Visual Studio reste réactif et ne se bloque pas si une extension plante ou reste suspendue.
  • Complexité réduite de l’API : VisualStudio.Extensibility possède une architecture simplifiée, des API cohérentes et une documentation claire.
  • Fonctionnalité de chargement à chaud : Visual Studio n’a pas besoin d’être redémarré lors de l’installation d’extensions.

À terme, vous pourrez utiliser le SDK VisualStudio.Extensibility pour écrire n’importe quelle extension que vous pourriez écrire en utilisant le SDK VS. Mais en attendant, vous pourriez rencontrer des situations où la fonctionnalité dont vous avez besoin dans votre extension n’est pas encore disponible dans VisualStudio.Extensibility. Dans ce cas, vous pouvez utiliser le SDK VisualStudio.Extensibility en conjonction avec le SDK VS s’exécutant en interne pour couvrir tout écart de fonctionnalité. Pour en savoir plus, veuillez consulter la rubrique Extensions in-proc.

Les dernières informations sur VisualStudio.Extensibility peuvent être trouvées dans le dépôt GitHub VSExtensibility sous Annonces.

Article Description
Installer VisualStudio.Extensibility Téléchargez et installez la dernière préversion de VisualStudio.Extensibility.
Prise en main Commencez par des prises en main rapides pour débutants et des tutoriels des premiers pas si vous n’avez jamais développé d’extension auparavant.
Concepts Créez votre représentation mentale du fonctionnement du SDK et des extensions.
Vues d'ensemble En savoir plus en lisant les vues d’ensemble des domaines principaux de fonctionnalités.
Exemples Consultez l’exemple de code illustrant les principales fonctionnalités.
Informations de référence sur les API Consultez la documentation de l’API VisualStudio.Extensibility.
API expérimentales et changements majeurs Découvrez notre approche des API stables et expérimentales et les changements majeurs par rapport à la version précédente.
Problèmes connus Parcourez les problèmes connus avec le SDK VisualStudio.Extensibility.
Rubriques avancées Découvrez les détails de l’implémentation du SDK VisualStudio.Extensibility.

Installer VisualStudio.Extensibility

La préversion actuelle de VisualStudio.Extensibility fonctionne avec Visual Studio 2022 version 17.9 Preview 1 ou supérieure avec la charge de travail Visual Studio extension development à installer.

Bien démarrer

Les articles suivants vous aideront à vous orienter et à démarrer :

Pour comprendre comment travailler avec VisualStudio.Extensibility, nous recommandons une compréhension approfondie de la programmation asynchrone avec async et await et de l’injection de dépendances. De plus, l’interface utilisateur dans VisualStudio.Extensibility est basée sur Windows Presentation Foundation (WPF), il est donc recommandé de consulter la documentation WPF.

Concepts

Si vous êtes familier avec le SDK Visual Studio, veuillez consulter Introduction à VisualStudio.Extensibility pour les utilisateurs du VSSDK.

Pour construire votre représentation mentale du fonctionnent des extensions Visual Studio, veuillez consulter la rubrique Composantes d’une nouvelle extension Visual Studio.

Pour savoir ce qui est inclus dans le SDK, veuillez consulter les Domaines fonctionnels du SDK.

Quand et où votre extension doit-elle apparaître dans l’IDE ? Les extensions Visual Studio apparaissent dans l’IDE lorsque certaines conditions sont remplies. Pour avoir le contrôle sur la façon dont et quand votre extension apparaît dans l’IDE, Veuillez consulter les Contraintes d’activation basées sur des règles.

Les extensions Visual Studio rendent leurs fonctionnalités disponibles à Visual Studio via des contributions. Pour plus d’informations, veuillez consulter la rubrique Contributions..

Découvrez le modèle d’interface utilisateur distant utilisé dans VisualStudio.Extensibility.

Vues d'ensemble

Parcourez une vue d’ensemble des domaines du SDK dont vous pourriez avoir besoin pour vos projets de développement d’extensions.

  • Pour créer des commandes et les exposer aux utilisateurs dans l’IDE, veuillez consulter la rubrique Commandes.
  • Pour travailler avec le contenu des fichiers et des documents, consultez la rubrique Extensions de l’éditeur.
  • Pour travailler avec la représentation en mémoire de ces mêmes documents, consultez la rubrique Documents.
  • Pour utiliser la fenêtre de sortie dans une extension, consultez la rubrique Fenêtre de sortie.
  • Pour travailler avec des fenêtres d’outils, des fenêtres ancrables dans l’IDE Visual Studio, consultez la rubrique Fenêtres d’outils.
  • Pour utiliser des invites avec des boutons personnalisables pour interagir avec l’utilisateur, consultez la rubrique Invites utilisateur.
  • Pour utiliser des boîtes de dialogue avec une interface utilisateur personnalisée pour interagir avec l’utilisateur, consultez la rubrique Boîtes de dialogue.
  • Pour créer des visualisations de données personnalisées lors du débogage, consultez la rubrique Visualiseurs de débogueur.
  • Pour interroger ou modifier des informations sur les projets et les solutions, consultez la rubrique Requête de projet.
  • Pour travailler avec des serveurs de langage / LSP pour un support de langage supplémentaire, consultez la rubrique Fournisseur de serveur de langage.

Exemples et tutoriels

Vous pouvez trouver une solution Visual Studio contenant tous les exemples à Samples.sln.

Exemple Description
Gestionnaire de commandes simple Démontre les bases du travail avec des commandes. Consultez également aussi le tutoriel Créez votre première extension Visual Studio.
Insérer une extension guid Montre comment insérer du texte ou du code dans l’éditeur de code, comment configurer une commande avec une condition d’activation spécifique et comment utiliser un fichier de ressources pour la localisation. Consultez également le tutoriel Créez votre extension simple.
Parentage des commandes Montre comment écrire une commande qui peut être rattachée à différents aspects de l’IDE.
Sélecteur de documents Montre comment créer une extension d’éditeur qui s’applique uniquement aux fichiers correspondant à un modèle de chemin de fichier.
Fenêtre Sortie Montre l’utilisation la plus basique de l’API de la fenêtre de sortie.
Fenêtre outil Montre comment créer une fenêtre d’outil et la remplir de contenu.
Invite utilisateur Montre comment afficher une invite à l’utilisateur
Dialogue Montre comment afficher une boîte de dialogue avec une interface utilisateur personnalisée à l’utilisateur.
Marge de comptage de mots Montre comment créer une extension de marge d’éditeur qui affiche le nombre de mots dans un document.
Linter Markdown Montre comment plusieurs composants peuvent interagir ensemble à l’intérieur d’une extension et comment différentes zones de Visual Studio peuvent être étendues.
Requête projet Montre plusieurs types différents de requêtes de système de projet que vous pouvez effectuer.
Suppresseur de commentaires Montre comment consommer les services du SDK Visual Studio via l’injection de dépendances .NET et utiliser les API VisualStudio.Extensibility pour les commandes, les invites et les rapports de progression.
RegexMatchDebugVisualizer Montre comment utiliser l’interface utilisateur à distance pour créer un visualiseur de débogueur pour visualiser les correspondances d’expressions régulières qui seront lancées dans une fenêtre de boîte de dialogue modale.
MemoryStreamDebugVisualizer Montre comment créer un visualiseur de débogueur pour visualiser les objets MemoryStream qui se lance dans une fenêtre d’outil non modale.
RustLanguageServiceProvider Montre comment créer une extension de fournisseur de serveur de langage Rust qui ajoute l’intellisense et les info-bulles lorsqu’un fichier rust est ouvert.

API expérimentales et changements majeurs

Depuis notre version 17.9, nous sommes en mesure d’affirmer que la grande majorité de nos API sont stables. Autrement dit, nous n’avons pas l’intention de faire des changements majeurs à ces API. Tout changement majeur qui pourrait être nécessaire, par exemple en réponse aux commentaires des utilisateurs à propos de l’ergonomie, sera communiqué formellement et avec beaucoup d’avis sur notre page de changements majeurs.

Quelques-unes de nos API ne répondent pas encore à ce critère de stabilité, pour l’une des raisons suivantes :

  • La zone de fonctionnalités est nouvelle et des fonctionnalités supplémentaires et des modifications sont attendues dans les versions futures.
  • Il s’agit d’une nouvelle API et nous voulons incorporer les commentaires des utilisateurs dans la conception avant de la marquer comme stable.
  • Nous avons reçu des commentaires selon lesquels une API en particulier est difficile à utiliser, nous prévoyons donc de la mettre à jour dans les versions futures.

Ces API ont explicitement été étiquetées avec l’attribut [Experimental] pour aider les auteurs d’extensions à créer leurs extensions avec confiance dans le kit de développement logiciel (SDK).

Pour plus d’informations, notamment sur l’utilisation des API expérimentales, veuillez consulter notre page d’API expérimentales.

Problèmes connus

Nous apprécions vos commentaires et rapports de bugs dans notre Suivi des problèmes, et nous travaillons pour résoudre tous les problèmes trouvés dans le SDK.

Veuillez consulter notre page de problèmes connus pour obtenir des informations sur les problèmes connus actuels.

Rubriques avancées

Article Description
Interface utilisateur à distance avancée Informations détaillées sur le modèle d’interface utilisateur à distance.
Extensions in-proc Une présentation rapide des différentes options pour utiliser le SDK VisualStudio.Extensibility in-proc.

Documentation API

Envoyer les commentaires

Nous sommes en recherche active de feedback et d’implication. La phase de préversion est moment idéal pour obtenir des retours de la communauté afin de nous aider à identifier les problèmes et les opportunités. Vous pouvez fournir des commentaires et signaler des bogues dans notre suivi des problèmes.