LanguageService, classe
C'est la classe de base pour un service de langage qui fournit des fonctionnalités des langages y compris la syntaxe mettant en surbrillance, la correspondance d'accolade, la saisie semi-automatique, la prise en charge IntelliSense, et l'expansion d'extrait de code.
Cette API n'est pas conforme CLS.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.Package.LanguageService
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.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
Syntaxe
'Déclaration
<CLSCompliantAttribute(False)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class LanguageService _
Implements IDisposable, IVsLanguageInfo, IVsLanguageDebugInfo, IVsProvideColorableItems, _
IVsLanguageContextProvider, IServiceProvider, IObjectWithSite, ISynchronizeInvoke, IVsDebuggerEvents, _
IVsFormatFilterProvider
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public abstract class LanguageService : IDisposable,
IVsLanguageInfo, IVsLanguageDebugInfo, IVsProvideColorableItems, IVsLanguageContextProvider, IServiceProvider,
IObjectWithSite, ISynchronizeInvoke, IVsDebuggerEvents, IVsFormatFilterProvider
Le type LanguageService expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
LanguageService | Initialise une nouvelle instance de la classe LanguageService. |
Début
Propriétés
Nom | Description | |
---|---|---|
InvokeRequired | Détermine si une méthode doit être appelée à travers une limite de thread. | |
IsActive | Détermine si le service de langage est connecté à l'affichage en cours et est donc actif. | |
IsDebugging | Détermine si le débogueur est actif. | |
IsParsing | Détermine si un arrière-plan analysent est en cours. | |
LastActiveTextView | Retourne le dernier affichage de texte actif associé à ce service de langage. | |
MainThreadId | Retourne l'identificateur du thread que que ce service de langage exécute sur. | |
Name | Retourne le nom du langage (par exemple, « C++ » ou « HTML »). | |
ParseThreadIsAlive | ||
ParseThreadPaused | ||
Preferences | Permet d'accéder à des préférences de service de langage. | |
Site | Retourne le fournisseur de services donné à ce service de langage. |
Début
Méthodes
Nom | Description | |
---|---|---|
AbortBackgroundParse | ||
AddCodeWindowManager | Ajoute un gestionnaire de fenêtre de code au service de langage. | |
BeginInvoke | Appelle une méthode sur un autre thread. | |
BeginParse | Commence une opération d'analyse sur un thread d'arrière-plan. | |
CanStopThread | ||
CreateCodeWindowManager | Instancie une classe d'CodeWindowManager. | |
CreateDocumentProperties | Instancie une classe d'DocumentProperties. | |
CreateDropDownHelper | Instancie une classe d'TypeAndMemberDropdownBars. | |
CreateExpansionFunction | Instancie une classe d'ExpansionFunction. | |
CreateExpansionProvider | Instancie une classe d'ExpansionProvider. | |
CreateParseRequest | Crée une demande de satisfaire la raison donnée pour analyser qui est alors passé en fonction à l'analyseur. | |
CreateSource | Instancie une classe d'Source. | |
CreateViewFilter | Instancie une classe d'ViewFilter. | |
CurFileExtensionFormat | Retourne l'index dans la liste d'extension de fichier qui correspond à l'extension du nom de fichier spécifié. | |
DispatchCommand(Guid, UInt32, IntPtr, IntPtr) | Appelé pour exécuter la commande spécifiée. | |
DispatchCommand(Guid, UInt32, UInt32, IntPtr, IntPtr) | ||
Dispose | Appelé lorsque l'objet du service de langage est détruit. | |
EndInvoke | Extrait le résultat d'un appel asynchrone lancé par LanguageService.BeginInvoke. | |
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.) | |
GetCodeWindowManager | Instancie une classe d'CodeWindowManager. | |
GetCodeWindowManagerForSource | Retourne l'objet d'CodeWindowManager associé à l'objet spécifié d'Source. | |
GetCodeWindowManagerForView | Retourne CodeWindowManager associé à l'objet spécifié d'IVsTextView. | |
GetColorableItem | Retourne l'objet demandé d'IVsColorableItem. | |
GetColorizer(IVsTextLines) | Iinstantiates une classe d'Colorizer. | |
GetColorizer(IVsTextLines, IVsColorizer%) | Retourne le coloriseur associé à un objet d'Source qui contient l'objet donné d'IVsTextLines. | |
GetFileExtensions | Retourne une chaîne contenant les extensions de fichier associées à ce langage. | |
GetFormatFilterList | Retourne une liste de filtres d'extension de fichier appropriés pour une boîte de dialogue d'Enregistrer sous. | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetImageList | Retourne une liste d'images contenant des glyphes associés avec le service de langage. | |
GetItemCount | Retourne le nombre d'éléments personnalisés qui autorisent la modification de la couleur pris en charge par le service de langage. | |
GetIVsDebugger | Retourne un objet d'IVsDebugger représentant le débogueur actuellement disponible pour écouter des événements de débogueur. | |
GetIVsTextMacroHelperIfRecordingOn | Retourne un objet d'IVsTextMacroHelper si l'enregistrement est activé. | |
GetLanguageID | Retourne le langage GUID du service de langage. | |
GetLanguageName | Retourne le nom du langage des handles de ce service de langage. | |
GetLanguagePreferences | Retourne un objet d'LanguagePreferences pour ce service de langage. | |
GetLanguageServiceGuid | Retourne GUID du service de langage. | |
GetLocationOfName | Méthode obsolète qui retourne toujours E_NOTIMPL. | |
GetNameOfLocation | Retourne le nom de l'élément englobant qui contient la position donnée. | |
GetOrCreateSource | ||
GetParseResult | Obtient le résultat de l'opération d'analyse. | |
GetPrimaryViewForSource | ||
GetProximityExpressions | Retourne une liste d'expressions à évaluer et être montrées dans la fenêtre d'Automatique, pour une étendue donnée des lignes. | |
GetScanner | Retourne une instanciation unique d'un analyseur. | |
GetService | Retourne un objet du service qui peut être cast à une interface spécifique. | |
GetSite | Retourne un pointeur démarshalé à une interface demandée. | |
GetSource(IVsTextLines) | Retourne un objet existant d'Source qui contient la mémoire tampon spécifiée de la source. | |
GetSource(IVsTextView) | Retourne un objet existant d'Source qui contient le fichier source montré dans l'affichage de texte spécifié. | |
GetSource(String) | Retourne un objet existant d'Source donné un nom de fichier. | |
GetSources | Retourne une collection d'objets d'Source maintenus par le service de langage. | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
Initialize | Appelé pour initialiser le service de langage. | |
Invoke | Appelé pour appeler une tâche spécifiée par le délégué donné. | |
IsMacroRecordingOn | Appelé pour déterminer si l'enregistrement est activé. | |
IsMappedLocation | Appelé pour déterminer si l'emplacement spécifié dans code de références donné de fichier source dans un autre fichier. | |
IsSourceOpen | Détermine si le fichier source est ouvert. | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
OnActiveViewChanged | Appelé lorsque l'affichage en cours a changé à une vue différente. | |
OnCaretMoved | Appelé lorsque le signe insertion a déplacé. | |
OnChangesCommitted | Appelé lorsque des modifications générées par un compléter automatiquement ou une opération d'expansion d'extrait de code est validées à la mémoire tampon. | |
OnCloseSource | Appelé pour fermer l'objet spécifié d'Source. | |
OnIdle | Appelé lorsque autre événement ne doit pas être géré. | |
OnModeChange | Appelé chaque fois que le mode débogage a changé en déboguant. | |
OnParseAborted | ||
OnParseComplete | Appelé lorsqu'un arrière-plan analysent a été achevé. | |
OpenDocument | Ouvre le fichier spécifié. | |
ParseSource | Analyse la source selon l'objet spécifié d'ParseRequest. | |
QueryInvalidEncoding | Détermine si le format spécifié de source est valide ou pas. | |
QueryService | Retourne l'interface de demande du service spécifié. | |
QueryWaitForAutoOutliningCallback | ||
RemoveCodeWindowManager | Appelé lorsque la vue associée avec CodeWindowManager spécifié est fermée. | |
ResolveName | Retourne une liste de noms de méthode qui correspondent à le nom donné modifié par les balises spécifiées. | |
ScrollToEnd(IVsTextView) | Met à jour la vue spécifiée pour montrer la fin du fichier source. | |
ScrollToEnd(IVsWindowFrame) | Met à jour la vue dans le cadre de fenêtre spécifié pour montrer la fin du fichier source. | |
SetSite | Appelé pour définir ou installer le fournisseur de services pour ce service de langage. | |
SetUserContextDirty | Marque le contexte d'utilisateur comme modifié dans la mémoire tampon spécifiée de source. | |
SynchronizeDropdowns | Appelé pour mettre à jour une barre déroulante selon l'emplacement du signe insertion actuel. | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) | |
UpdateLanguageContext | Met à jour le contexte d'aide d'utilisateur actuel dans la zone sélectionnée de la source donnée. | |
ValidateBreakpointLocation | Appelé pour déterminer si l'emplacement donné peut avoir un point d'arrêt appliqué à lui. |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
IVsFormatFilterProvider.CurFileExtensionFormat | Retourne l'index dans la liste d'extension de fichier qui correspond à l'extension du nom de fichier spécifié. | |
IVsFormatFilterProvider.GetFormatFilterList | Retourne une liste de filtres d'extension de fichier appropriés pour une boîte de dialogue d'Enregistrer sous. | |
IVsFormatFilterProvider.QueryInvalidEncoding | Détermine si le format spécifié de source est valide ou pas. | |
IVsLanguageContextProvider.UpdateLanguageContext | Met à jour le contexte d'aide d'utilisateur actuel donné une zone sélectionnée de la source donnée. |
Début
Remarques
Visual Studio utilise des services de langage pour fournir la prise en charge des langages de code.Un service de langage est enregistré avec Visual Studio lorsque le package de service de langage est installé.Une partie de cette procédure d'enregistrement associe une extension de fichier avec un service de langage à quel moment un fichier avec cette extension est chargé, le service de langage est également chargée.
La classe d'LanguageService est la classe de base pour votre service de langage.Visual Studio instancie le VSPackage implémentant votre service de langage et appelle la méthode d'SetSite sur le VSPackage.Dans l'implémentation de cette méthode, la méthode d'Initialize sur la classe de base d'Package est appelée.Substituez la méthode d'Initialize pour instancier votre service de langage.Souvenez-vous pour appeler la méthode d'SetSite sur votre service de langage après l'instanciation.
Remarques à l'attention des implémenteurs
Dérivez une classe de cette classe pour créer votre propre service de langage.Vous devez également, pour le moins, implémenter un analyseur qui implémente l'interface d'IScanner.Toutes les fonctionnalités d'un service de langage sont selon l'analyseur.
Les méthodes suivantes et la propriété sont marquées comme abstraits et doivent être implémentées dans une classe Tom dérivé la classe d'LanguageService :
Méthode/propriété à implémenter |
Description |
---|---|
Une méthode qui retourne un objet d'LanguagePreferences. |
|
Une méthode qui retourne un objet d'IScanner. |
|
Une méthode qui analyse la source. |
|
Une propriété en lecture seule qui retourne le nom de langue |
Si vous n'envisagez pas de prendre en charge l'ValidateBreakpointLocation mais votre langage prend en charge des points d'arrêt, vous devez substituer la méthode d'ValidateBreakpointLocation et retourner une étendue qui contient la ligne et la colonne spécifiées ; sinon, des points d'arrêt ne peuvent pas être définis n'importe où à l'exception de la ligne 1.Vous pouvez retourner E_NOTIMPL pour indiquer que vous ne prenez en charge pas sinon cette méthode mais l'étendue doit toujours être définie.L'exemple dans la méthode d'ValidateBreakpointLocation montre comment procéder.
Remarques à l'attention des appelants
Enregistrez votre service de langage en installant votre VSPackage (cela peut être un package dédié à votre service de langage ou être un package de projet qui fournit également un service de langage).Vous instanciez votre propre service de langage pendant l'initialisation de package.Visual Studio interagit avec votre service de langage pour afficher code écrit dans le langage pris en charge par votre service de langage.Voyez l'exemple ci-dessous pour obtenir la définition de l'alignement de langage peut être effectué.
Exemples
L'exemple suivant montre comment enregistrer et initialiser votre service de langage pour votre package.Remarque : MyLanguageService est dérivé de la classe d'LanguageService.
using System.ComponentModel.Design;
using Microsoft.VisualStudio.Shell;
namespace MyLanguagePackage
{
/////////////////////////////////////////////
// Other package registration details go here
/////////////////////////////////////////////
// Offer a new language service
[ProvideServiceAttribute(typeof(MyLanguageService),
ServiceName = "My Language Service")]
// Register the language service with Visual Studio.
// "106" is the resource ID in the satellite DLL to the localized language name.
[ProvideLanguageServiceAttribute(typeof(MyLanguageService),"My Language",106)]
// Associate a file extension with our language service.
[ProvideLanguageExtensionAttribute(typeof(MyLanguageService), ".myext")]
class MyLanguagePackage : Package
{
protected override void Initialize()
{
base.Initialize();
IServiceContainer serviceContainer = this as IServiceContainer;
MyLanguageService languageService = new MyLanguageService();
languageService.SetSite(this);
serviceContainer.AddService(typeof(MyLanguageService),
languageService,
true);
}
}
}
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.
Voir aussi
Référence
Microsoft.VisualStudio.Package, espace de noms