Condividi tramite


procedura dettagliata: Crea un servizio di linguaggio (managed package Framework)

Utilizzo di classi di linguaggio gestiti del framework (MPF) del pacchetto implementare un servizio di linguaggio in Visual C# è semplice. È necessario un VSPackage di includere il servizio di linguaggio, il servizio di linguaggio stesso e un parser per il linguaggio.

Prerequisiti

Per completare questa procedura dettagliata, è necessario installare Visual Studio 2010 SDK.

Nota

per ulteriori informazioni su Visual Studio SDK, vedere Cenni preliminari sull'estensione di Visual Studio.Per ulteriori informazioni su come scaricare Visual Studio SDK, vedere Centro per sviluppatori di estensibilità di Visual Studio il sito Web MSDN.

Posizioni del modello di progetto del pacchetto Visual Studio

Il modello di progetto del pacchetto Visual Studio è disponibile in tre diverse posizioni del modello nella finestra di dialogo di nuovo progetto :

  1. Sotto di estensibilità di Visual Basic. La lingua predefinita del progetto di Visual Basic.

  2. Sotto di estensibilità di c#. La lingua predefinita del progetto è c#.

  3. Nell'ambito dell'altra estensibilità dei tipi di progetto. La lingua predefinita del progetto è C++.

Creare un package VS

  1. Creare un nuovo pacchetto VS con il modello di progetto del pacchetto di Visual Studio.

    Se si aggiunge un servizio di linguaggio in un VSPackage esistente, ignorare i passaggi seguenti e passare direttamente “creano alla routine della classe di servizio di linguaggio„.

  2. Immettere MyLanguagePackage per il nome del progetto e scegliere OK.

    È possibile utilizzare qualsiasi nome desiderato. Queste procedure dettagliate di seguito si presuppone MyLanguagePackage come nome.

  3. Visual C# selezionato come il linguaggio e l'opzione per generare un nuovo file di chiave. Scegliere Avanti.

  4. Immettere la società e le informazioni sul pacchetto appropriate. Scegliere Avanti.

  5. comando di menuselezionato. Scegliere Avanti.

    Se non si intende supportare i frammenti di codice, è possibile fare clic su fine e ignorare il passaggio successivo.

  6. Immettere il frammento INSERT come Nome del comando e cmdidInsertSnippet per ID di comando. Fare clic su Fine.

    Nome del comando e ID di comando possono essere di qualsiasi si desidera, questi sono solo esempi.

Per creare la classe di servizio di linguaggio

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto MyLanguagePackage e selezionare aggiungere il riferimento.

  2. Nella finestra di dialogo di aggiungere il riferimento , in Microsoft.VisualStudio.Package.LanguageService selezionato nella scheda di .NET e scegliere OK.

    Questa operazione deve essere eseguita solo una volta per il progetto del pacchetto di linguaggio.

  3. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto VSPackage e selezionare aggiungere - > classe.

  4. Assicurarsi che classe sia selezionato nell'elenco dei modelli.

  5. Fornire MyLanguageService.cs per il nome del file di classe e fare clic aggiungere.

    È possibile utilizzare qualsiasi nome desiderato. Queste procedure dettagliate di seguito si presuppone MyLanguageService come nome.

  6. Nel file di MyLanguageService.cs, aggiungere le seguenti istruzioni di using .

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    Imports Microsoft.VisualStudio.OLE.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    using Microsoft.VisualStudio.OLE.Interop;
    
  7. Modificare la classe di MyLanguageService per derivare dalla classe di LanguageService :

       Friend Class MyLanguageService
            Inherits LanguageService
    
    class MyLanguageService : LanguageService
    
  8. Posizionare il cursore in “LanguageService„ e da Modifica - il menu di > IntelliSense , Classe astratta di utilizzoselezionato. Vengono aggiunti i metodi di minime necessarie per implementare una classe di servizio di linguaggio.

  9. implementare i metodi astratti come descritto in Implementare un servizio di linguaggio (managed package Framework).

registrare il servizio di linguaggio

  1. Aprire il file di MyLanguagePackagePackage.cs e aggiungere le seguenti istruzioni di using :

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    
  2. registrare la classe di servizio di linguaggio come descritto in Registrando un servizio di linguaggio (managed package Framework). Sono inclusi gli attributi di ProvideXX e “questi sezioni del servizio di linguaggio„. Utilizzo MyLanguageService cui questo argomento viene utilizzata TestLanguageService.

il parser e lo scanner

Funzionalità del servizio di linguaggio

Per implementare ogni funzionalità del servizio di linguaggio, in genere una classe deriva dalla classe appropriata del servizio di linguaggio di MPF, è necessario implementare tutti i metodi astratti in base alle esigenze ed eseguire l'override dei metodi appropriati. Che si crea classi derivate e/o dipende dalle funzionalità che si desidera supportare. Queste funzionalità vengono descritte Funzionalità del servizio di linguaggio (managed package Framework)in dettaglio in. La procedura riportata di seguito è l'approccio generale a derivare una classe dalle classi di MPF.

Derivazione da una classe di MPF

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto VSPackage e selezionare aggiungere - > classe.

  2. Assicurarsi che classe sia selezionato nell'elenco dei modelli.

    Un nome appropriato per il file di classe e fare clic aggiungere.

  3. Nel nuovo file di classe, aggiungere le seguenti istruzioni di using .

    Imports Microsoft.VisualStudio
    Imports Microsoft.VisualStudio.Package
    Imports Microsoft.VisualStudio.TextManager.Interop
    Imports Microsoft.VisualStudio.OLE.Interop
    
    using Microsoft.VisualStudio;
    using Microsoft.VisualStudio.Package;
    using Microsoft.VisualStudio.TextManager.Interop;
    using Microsoft.VisualStudio.OLE.Interop;
    
  4. Modificare la classe per derivare dalla classe desiderata di MPF.

  5. Aggiungere il costruttore della classe che accetta almeno gli stessi parametri del costruttore della classe base e passare i parametri del costruttore al costruttore della classe base.

    Ad esempio, il costruttore per una classe derivata dalla classe di Source potrebbe essere simile al seguente:

    Namespace MyLanguagePackage
        Friend Class MySource
            Inherits Source
            Public Sub New(ByVal service As LanguageService, ByVal textLines As IVsTextLines,
                           ByVal colorizer As Colorizer)
                MyBase.New(service, textLines, colorizer)
            End Sub 
        End Class 
    End Namespace
    
    namespace MyLanguagePackage
    {
        class MySource : Source
        {
            public MySource(LanguageService service,
                            IVsTextLines textLines,
                            Colorizer colorizer)
                : base(service, textLines, colorizer)
            {
            }
        }
    }
    
  6. Da Modifica - menu di > IntelliSense , Classe astratta di utilizzo selezionato se la classe base dispone di metodi astratti che devono essere implementati.

  7. In caso contrario, posizionare il cursore nella classe e immettere il metodo di cui eseguire l'override.

    Ad esempio, digitare override pubbliche per visualizzare un elenco di tutti i metodi che possono essere sottoposti a override nella classe.

Vedere anche

Altre risorse

Implementare un servizio di linguaggio tramite il pacchetto gestito Framework