Partager via


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
Méthode protégée LanguageService Initialise une nouvelle instance de la classe LanguageService.

Début

Propriétés

  Nom Description
Propriété publique InvokeRequired Détermine si une méthode doit être appelée à travers une limite de thread.
Propriété publique IsActive Détermine si le service de langage est connecté à l'affichage en cours et est donc actif.
Propriété publique IsDebugging Détermine si le débogueur est actif.
Propriété publique IsParsing Détermine si un arrière-plan analysent est en cours.
Propriété publique LastActiveTextView Retourne le dernier affichage de texte actif associé à ce service de langage.
Propriété publique MainThreadId Retourne l'identificateur du thread que que ce service de langage exécute sur.
Propriété publique Name Retourne le nom du langage (par exemple, « C++ » ou « HTML »).
Propriété protégée ParseThreadIsAlive
Propriété publique ParseThreadPaused
Propriété publique Preferences Permet d'accéder à des préférences de service de langage.
Propriété publique Site Retourne le fournisseur de services donné à ce service de langage.

Début

Méthodes

  Nom Description
Méthode publique AbortBackgroundParse
Méthode publique AddCodeWindowManager Ajoute un gestionnaire de fenêtre de code au service de langage.
Méthode publique BeginInvoke Appelle une méthode sur un autre thread.
Méthode publique BeginParse Commence une opération d'analyse sur un thread d'arrière-plan.
Méthode publique CanStopThread
Méthode publique CreateCodeWindowManager Instancie une classe d'CodeWindowManager.
Méthode publique CreateDocumentProperties Instancie une classe d'DocumentProperties.
Méthode publique CreateDropDownHelper Instancie une classe d'TypeAndMemberDropdownBars.
Méthode publique CreateExpansionFunction Instancie une classe d'ExpansionFunction.
Méthode publique CreateExpansionProvider Instancie une classe d'ExpansionProvider.
Méthode publique CreateParseRequest Crée une demande de satisfaire la raison donnée pour analyser qui est alors passé en fonction à l'analyseur.
Méthode publique CreateSource Instancie une classe d'Source.
Méthode publique CreateViewFilter Instancie une classe d'ViewFilter.
Méthode publique CurFileExtensionFormat Retourne l'index dans la liste d'extension de fichier qui correspond à l'extension du nom de fichier spécifié.
Méthode publique DispatchCommand(Guid, UInt32, IntPtr, IntPtr) Appelé pour exécuter la commande spécifiée.
Méthode publique DispatchCommand(Guid, UInt32, UInt32, IntPtr, IntPtr)
Méthode publique Dispose Appelé lorsque l'objet du service de langage est détruit.
Méthode publique EndInvoke Extrait le résultat d'un appel asynchrone lancé par LanguageService.BeginInvoke.
Méthode publique Equals Détermine si l'objet Object spécifié est égal à l'objet Object actuel. (Hérité de Object.)
Méthode protégée 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.)
Méthode publique GetCodeWindowManager Instancie une classe d'CodeWindowManager.
Méthode publique GetCodeWindowManagerForSource Retourne l'objet d'CodeWindowManager associé à l'objet spécifié d'Source.
Méthode publique GetCodeWindowManagerForView Retourne CodeWindowManager associé à l'objet spécifié d'IVsTextView.
Méthode publique GetColorableItem Retourne l'objet demandé d'IVsColorableItem.
Méthode publique GetColorizer(IVsTextLines) Iinstantiates une classe d'Colorizer.
Méthode publique GetColorizer(IVsTextLines, IVsColorizer%) Retourne le coloriseur associé à un objet d'Source qui contient l'objet donné d'IVsTextLines.
Méthode publique GetFileExtensions Retourne une chaîne contenant les extensions de fichier associées à ce langage.
Méthode publique GetFormatFilterList Retourne une liste de filtres d'extension de fichier appropriés pour une boîte de dialogue d'Enregistrer sous.
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetImageList Retourne une liste d'images contenant des glyphes associés avec le service de langage.
Méthode publique GetItemCount Retourne le nombre d'éléments personnalisés qui autorisent la modification de la couleur pris en charge par le service de langage.
Méthode publique GetIVsDebugger Retourne un objet d'IVsDebugger représentant le débogueur actuellement disponible pour écouter des événements de débogueur.
Méthode publique GetIVsTextMacroHelperIfRecordingOn Retourne un objet d'IVsTextMacroHelper si l'enregistrement est activé.
Méthode publique GetLanguageID Retourne le langage GUID du service de langage.
Méthode publique GetLanguageName Retourne le nom du langage des handles de ce service de langage.
Méthode publique GetLanguagePreferences Retourne un objet d'LanguagePreferences pour ce service de langage.
Méthode publique GetLanguageServiceGuid Retourne GUID du service de langage.
Méthode publique GetLocationOfName Méthode obsolète qui retourne toujours E_NOTIMPL.
Méthode publique GetNameOfLocation Retourne le nom de l'élément englobant qui contient la position donnée.
Méthode publique GetOrCreateSource
Méthode publique GetParseResult Obtient le résultat de l'opération d'analyse.
Méthode publique GetPrimaryViewForSource
Méthode publique GetProximityExpressions Retourne une liste d'expressions à évaluer et être montrées dans la fenêtre d'Automatique, pour une étendue donnée des lignes.
Méthode publique GetScanner Retourne une instanciation unique d'un analyseur.
Méthode publique GetService Retourne un objet du service qui peut être cast à une interface spécifique.
Méthode publique GetSite Retourne un pointeur démarshalé à une interface demandée.
Méthode publique GetSource(IVsTextLines) Retourne un objet existant d'Source qui contient la mémoire tampon spécifiée de la source.
Méthode publique GetSource(IVsTextView) Retourne un objet existant d'Source qui contient le fichier source montré dans l'affichage de texte spécifié.
Méthode publique GetSource(String) Retourne un objet existant d'Source donné un nom de fichier.
Méthode publique GetSources Retourne une collection d'objets d'Source maintenus par le service de langage.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique Initialize Appelé pour initialiser le service de langage.
Méthode publique Invoke Appelé pour appeler une tâche spécifiée par le délégué donné.
Méthode publique IsMacroRecordingOn Appelé pour déterminer si l'enregistrement est activé.
Méthode publique IsMappedLocation Appelé pour déterminer si l'emplacement spécifié dans code de références donné de fichier source dans un autre fichier.
Méthode publique IsSourceOpen Détermine si le fichier source est ouvert.
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique OnActiveViewChanged Appelé lorsque l'affichage en cours a changé à une vue différente.
Méthode publique OnCaretMoved Appelé lorsque le signe insertion a déplacé.
Méthode protégée 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.
Méthode publique OnCloseSource Appelé pour fermer l'objet spécifié d'Source.
Méthode publique OnIdle Appelé lorsque autre événement ne doit pas être géré.
Méthode publique OnModeChange Appelé chaque fois que le mode débogage a changé en déboguant.
Méthode publique OnParseAborted
Méthode publique OnParseComplete Appelé lorsqu'un arrière-plan analysent a été achevé.
Méthode publique OpenDocument Ouvre le fichier spécifié.
Méthode publique ParseSource Analyse la source selon l'objet spécifié d'ParseRequest.
Méthode publique QueryInvalidEncoding Détermine si le format spécifié de source est valide ou pas.
Méthode publique QueryService Retourne l'interface de demande du service spécifié.
Méthode publique QueryWaitForAutoOutliningCallback
Méthode publique RemoveCodeWindowManager Appelé lorsque la vue associée avec CodeWindowManager spécifié est fermée.
Méthode publique ResolveName Retourne une liste de noms de méthode qui correspondent à le nom donné modifié par les balises spécifiées.
Méthode publique ScrollToEnd(IVsTextView) Met à jour la vue spécifiée pour montrer la fin du fichier source.
Méthode publique ScrollToEnd(IVsWindowFrame) Met à jour la vue dans le cadre de fenêtre spécifié pour montrer la fin du fichier source.
Méthode publique SetSite Appelé pour définir ou installer le fournisseur de services pour ce service de langage.
Méthode publique SetUserContextDirty Marque le contexte d'utilisateur comme modifié dans la mémoire tampon spécifiée de source.
Méthode publique SynchronizeDropdowns Appelé pour mettre à jour une barre déroulante selon l'emplacement du signe insertion actuel.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique UpdateLanguageContext Met à jour le contexte d'aide d'utilisateur actuel dans la zone sélectionnée de la source donnée.
Méthode publique 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
Implémentation d'interface expliciteMéthode privée IVsFormatFilterProvider.CurFileExtensionFormat Retourne l'index dans la liste d'extension de fichier qui correspond à l'extension du nom de fichier spécifié.
Implémentation d'interface expliciteMéthode privée IVsFormatFilterProvider.GetFormatFilterList Retourne une liste de filtres d'extension de fichier appropriés pour une boîte de dialogue d'Enregistrer sous.
Implémentation d'interface expliciteMéthode privée IVsFormatFilterProvider.QueryInvalidEncoding Détermine si le format spécifié de source est valide ou pas.
Implémentation d'interface expliciteMéthode privée 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

GetLanguagePreferences

Une méthode qui retourne un objet d'LanguagePreferences.

GetScanner

Une méthode qui retourne un objet d'IScanner.

ParseSource

Une méthode qui analyse la source.

Name

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

Autres ressources

Vue d'ensemble du service de langage (managed de package)