Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette classe est utilisée par l'analyseur pour rassembler des informations à propos de la source étant analysée.
Cette API n'est pas conforme CLS.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.Package.AuthoringSink
Espace de noms : Microsoft.VisualStudio.Package
Assemblys : Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Syntaxe
'Déclaration
<CLSCompliantAttribute(False)> _
Public Class AuthoringSink
[CLSCompliantAttribute(false)]
public class AuthoringSink
Le type AuthoringSink expose les membres suivants.
Constructeurs
| Nom | Description | |
|---|---|---|
![]() |
AuthoringSink | Initialise la classe AuthoringSink. |
Début
Propriétés
| Nom | Description | |
|---|---|---|
![]() |
BraceMatching | Indique si la correspondance d'accolade est faite pour une opération d'analyse. |
![]() |
Column | Obtient la colonne l'analyse démarrée sur. |
![]() |
FindNames | Indique si des identificateurs doivent être trouvés. |
![]() |
FoundMatchingBrace | Suit si une paire correspondante d'accolade était ajoutée à la liste interne. |
![]() |
HiddenRegions | Indique si les zones masquées doivent être traitées pendant l'opération d'analyse. |
![]() |
Line | Retourne la ligne que que l'opération d'analyse a démarré sur. |
![]() |
MethodParameters | Indique si traiter des paramètres de méthode pendant l'opération d'analyse. |
![]() |
ProcessHiddenRegions | Indique si mettre à jour les zones masquées. |
![]() |
Reason | Retourne la raison que que l'opération d'analyse a été démarrée. |
Début
Méthodes
| Nom | Description | |
|---|---|---|
![]() |
AddError | Ajoute une erreur dans le message d'analyse pour la création de rapport ultérieure. |
![]() |
AddHiddenRegion(NewHiddenRegion) | Ajoute l'objet spécifié d'NewHiddenRegion à la liste masquée interne de régions. |
![]() |
AddHiddenRegion(TextSpan) | Ajoute une nouvelle zone masquée à la liste interne selon l'objet donné d'TextSpan. |
![]() |
AddHiddenRegion(TextSpan, String) | |
![]() |
AutoExpression | Ajoute l'étendue d'une expression à une liste interne. |
![]() |
CodeSpan | Cela ajoute une étendue de code exécutable à une liste interne. |
![]() |
EndParameters | Appelé pour indiquer la fin de la liste de paramètres d'une méthode. |
![]() |
Equals | Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.) |
![]() |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
![]() |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
![]() |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
![]() |
MatchMultiple | |
![]() |
MatchPair | Appelé pour ajouter les étendues les deux éléments couplés dans une liste interne. |
![]() |
MatchTriple | Appelé pour ajouter une correspondance définie de trois éléments à une liste interne. |
![]() |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) |
![]() |
NextParameter | Appelé en analysant une liste de paramètre de méthode et le caractère de séparation de paramètre a été juste analysé. |
![]() |
QualifyName | Appelé pour noter l'emplacement d'une référence membre. |
![]() |
StartName | Appelé lorsqu'un identificateur est analysé. |
![]() |
StartParameters | Appelé au début de la liste de paramètres d'une méthode. |
![]() |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Remarques
Une instanciation de cette classe est utilisée largement par l'analyseur pour se souvenir les différents éléments de langage qui aident avec les fonctionnalités suivantes :
Rapport d'erreurs.
Correspondance d'accolade.
La sélection membre d'Intellisense, complètent Word, l'info express, et les conseils de méthode.
Zones masquées.
Gestion du contenu de la fenêtre d'Automatique dans le débogueur.
Validation de point d'arrêt.
La classe de base a la prise en charge de tous les deux dernières des fonctionnalités.
Erreurs
La classe de base utilise ArrayList interne appelé errors pour contenir les erreurs recherchées pendant l'analyse.Cette liste est affichée à la fin d'une opération d'analyse complète en convertissant chaque message d'erreur dans un élément de liste des tâches par CreateErrorTaskItem appelant et en l'ajoutant la fenêtre de tâche de Liste d'erreurs .Ces erreurs sont également montrées dans le fichier source lui-même comme lignes ondulées sous code qui est dans l'erreur.Cela est géré automatiquement par les classes de MPF.Le constructeur de classe d'AuthoringSink prend un paramètre qui spécifie le nombre maximal d'erreurs qui peuvent être conservées par la classe.
Accolades correspondantes
La classe de base utilise ArrayList interne appelé Braces pour contenir des paires de correspondance d'éléments de langage (tel que « { » et « } ") ainsi que correspondre à des triples (tels que « for() », « { », et « } ").Une classe de base appelée BraceMatch est utilisée pour correspondre à des paires pendant qu'une classe dérivée appelée TripleMatch ajoute les informations pour un troisième élément de langage.Appeler l'MatchPair et les méthodes d'MatchTriple est effectué uniquement lorsque la raison pour l'analyse est de correspondre à l'accolade (voyez la propriété d'BraceMatching pour plus d'informations sur les raisons exactes).Voyez la section Exemple d'MatchPair pour une description de la classe d'BraceMatch et voyez la section Exemple d'MatchTriple pour une description de la classe d'TripleMatch.
IntelliSense
Intellisense a au moins quatre modes distincts qui peuvent être pris en charge par le service de langage.Il s'agit des valeurs suivantes :
Sélection membre : Cette option fournit une liste des membres pour la portée actuelle, en général fournie après les types d'utilisateur un personnage particulier.Par exemple, si l'utilisateur a entré un nom de variable suivi de « . » ensuite une liste des membres pour le type de cette variable est affichée pour la sélection.
Compléter le mot : Cette option présente une liste des saisies semi-automatiques possibles pour un mot entré par l'utilisateur.
Informations rapides : Cette option répertorie des informations sur un identificateur.C'est déclenché par l'utilisateur maintenant le curseur de la souris au-dessus de l'identificateur ou en positionnant le signe insertion de modification sur un identificateur et en sélectionnant Informations rapides du menu d'IntelliSense.
Conseil de méthode : Cette option répertorie les informations de paramètre pour aider l'utilisateur tout en écrivant une méthode et ses paramètres.Une info-bulle est affichée montrant à une de possibles plusieurs formulaires surchargés de la méthode avec les paramètres.Lorsque l'utilisateur entre chaque paramètre, l'info-bulle est mise à jour pour montrer le paramètre étant tapé.
Tous ces modes sont pris en charge par l'StartName de méthodes et QualifyName et les listes internes MethodCalls, Names, et SourceLocations.MethodCalls est utilisé pour suivre des signatures de méthode lorsqu'ils sont analysés.Names et SourceLocations sont utilisés pour suivre les paramètres de méthode tout en analysant une liste de paramètre de méthode.Notez que pour chaque nom dans la liste d'Names, il existe un objet correspondant d'TextSpan dans la liste d'SourceLocations.
Zones masquées
Les zones masquées sont des sections de code qui peuvent éventuellement être masquées de la vue par l'utilisateur.Ces régions sont en général utilisées dans le cadre de le support pour esquisser où chaque méthode et classe peuvent être réduites dans une ligne unique, faisant clearer le global de structure de classe.Certains langages prennent en charge les zones masquées spécifique via des mots clés spéciaux.Par exemple, le C- utilise #region/#endregion pour encadrer une zone que l'utilisateur souhaite normalement masqué.Une zone masquée est indiquée par un objet d'TextSpan qui est encapsulé dans un objet d'NewHiddenRegion qui ensuite est enregistré dans une matrice interne appelée hiddenRegions.Les zones masquées sont ajoutées en appelant AddHiddenRegion.
Autos
Tout en déboguant, la fenêtre d'Automatique peut montrer tous les variables locales et paramètres disponibles dans une portée particulière d'un frame de pile.Le service de langage peut prendre en charge ces variables en les recherchant pendant l'analyse.Cela permet la fenêtre d'Automatique à mettre à jour dynamiquement en modifiant pendant déboguer.La classe de base AuthoringSink ne prend en charge pas les automobiles vous devez dériver une classe de la classe d'AuthoringSink et appliquer la méthode d'AutoExpression vous-même.
Validation de point d'arrêt
Lorsqu'un point d'arrêt est placé, l'emplacement du point d'arrêt n'est pas validé jusqu'à ce que déboguant réellement démarre et le moteur de débogage a été chargé.Si votre service prend en charge de langage identifiant les sections valides de code où un point d'arrêt peut être placé, puis de ces informations peuvent être utilisés pour valider le positionnement des points d'arrêt sans charger le moteur de débogage.Notez que le moteur de débogage est toujours le détient final en validant des emplacements du point d'arrêt mais le service de langage peut fournir la rétroaction rapide à l'utilisateur.La classe de base AuthoringSink ne prend en charge pas la validation de point d'arrêt vous devez dériver une classe de la classe d'AuthoringSink et appliquer la méthode d'CodeSpan vous-même.
Remarques à l'attention des implémenteurs
Si vos expressions de service prend en charge de langage dans la fenêtre d'Automatique ou points d'arrêt de valider dans une étendue de code, vous devez dériver une classe de la classe d'AuthoringSink et substituer les méthodes appropriées (AutoExpression et CodeSpan).Substituez ensuite la méthode d'CreateAuthoringSink dans la classe d'Source pour instancier votre version de la classe d'AuthoringSink.La classe d'AuthoringSink est instanciée chaque fois qu'une opération d'analyse est appelée pour.
Remarques à l'attention des appelants
Cette classe est accessible à plusieurs endroits dans la classe d'Source pour traiter la correspondance, l'Intellisense, et le rapport d'erreurs d'accolade.
Conseil : En implémentant votre classe dérivée d'AuthoringScope, ajoutez un champ à votre classe pour enregistrer l'objet d'AuthoringSink créé pour l'objet d'ParseRequest.De cette façon, votre objet d'AuthoringScope peut accéder à toutes les informations enregistrées dans l'objet d'AuthoringSink.
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
.gif)
.gif)
.gif)