Couleurs de syntaxe dans les éditeurs personnalisés
Les éditeurs du Kit de développement logiciel (SDK) Visual Studio Environment, y compris l’éditeur principal, utilisent les services linguistiques pour identifier des éléments syntactiques spécifiques et les afficher avec des couleurs spécifiées pour une vue de document donnée.
Configuration requise pour la colorisation
Tous les éditeurs implémentant le coloriseur d’un service de langage doivent :
Utilisez un objet implémentant pour gérer le texte à coloriser et un objet implémentant IVsTextBuffer IVsTextView pour fournir une vue de document du texte.
Obtenez une interface vers un service de langage particulier en interrogeant le fournisseur de services de VSPackage à l’aide du GUID d’identification du service de langues.
Appelez la SetLanguageServiceID méthode de l’objet implémentant IVsTextBuffer. Cette méthode associe le service de langage à l’implémentation IVsTextBuffer utilisée par VSPackage pour gérer le texte à coloriser.
Utilisation principale de l’éditeur de coloriseur d’un service de langage
Lorsqu’un service de langage avec un coloriseur est obtenu par une instance de l’éditeur principal, l’analyse et le rendu du texte par le coloriseur d’un service de langue se produisent automatiquement sans nécessiter d’intervention supplémentaire de votre part.
L’IDE de manière transparente :
Appelle le coloriseur selon les besoins pour analyser et analyser du texte tel qu’il est ajouté ou modifié dans l’implémentation de IVsTextBuffer.
Garantit que l’affichage fourni par l’affichage de document fourni par l’implémentation IVsTextView est mis à jour et repeint à l’aide des informations retournées par le coloriseur.
Utilisation non principale de l’éditeur de coloriseur d’un service de langage
Les instances d’éditeur non principales peuvent également utiliser le service de colorisation de syntaxe d’un service de langage, mais elles doivent récupérer et appliquer explicitement le coloriseur du service, et repeindre leurs vues de document elles-mêmes.
Pour ce faire, un éditeur non principal doit :
Obtenir l’objet coloriseur d’un service de langage (qui implémente IVsColorizer et IVsColorizer2). Le VSPackage effectue cette opération en appelant la GetColorizer méthode sur l’interface du service de langage.
Appelez la ColorizeLine méthode pour demander qu’une étendue particulière de texte soit colorisée.
La ColorizeLine méthode retourne un tableau de valeurs, une pour chaque lettre de l’étendue de texte en cours de colorisation. Il identifie également l’étendue de texte comme un type particulier d’élément colorable, tel qu’un commentaire, un mot clé ou un type de données.
Utilisez les informations de colorisation retournées par ColorizeLine pour repeindre et afficher son texte.
Remarque
Outre l’utilisation du coloriseur d’un service de langage, un VSPackage peut choisir d’utiliser le mécanisme de coloration de texte du SDK Visual Studio Environment à usage général. Pour plus d’informations sur ce mécanisme, consultez Utilisation des polices et des couleurs.