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 :
Sotto di estensibilità di Visual Basic. La lingua predefinita del progetto di Visual Basic.
Sotto di estensibilità di c#. La lingua predefinita del progetto è c#.
Nell'ambito dell'altra estensibilità dei tipi di progetto. La lingua predefinita del progetto è C++.
Creare un package VS
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„.
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.
Visual C# selezionato come il linguaggio e l'opzione per generare un nuovo file di chiave. Scegliere Avanti.
Immettere la società e le informazioni sul pacchetto appropriate. Scegliere Avanti.
comando di menuselezionato. Scegliere Avanti.
Se non si intende supportare i frammenti di codice, è possibile fare clic su fine e ignorare il passaggio successivo.
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
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto MyLanguagePackage e selezionare aggiungere il riferimento.
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.
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto VSPackage e selezionare aggiungere - > classe.
Assicurarsi che classe sia selezionato nell'elenco dei modelli.
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.
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;
Modificare la classe di MyLanguageService per derivare dalla classe di LanguageService :
Friend Class MyLanguageService Inherits LanguageService
class MyLanguageService : LanguageService
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.
implementare i metodi astratti come descritto in Implementare un servizio di linguaggio (managed package Framework).
registrare il servizio di linguaggio
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;
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
Implementare un parser e lo scanner per il linguaggio come descritto in Parser del servizio di linguaggio e analisi (managed package Framework).
Come si distribuisce il parser e lo scanner dipende interamente il programmatore ed esula dall'ambito di questo argomento.
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
In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto VSPackage e selezionare aggiungere - > classe.
Assicurarsi che classe sia selezionato nell'elenco dei modelli.
Un nome appropriato per il file di classe e fare clic aggiungere.
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;
Modificare la classe per derivare dalla classe desiderata di MPF.
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) { } } }
Da Modifica - menu di > IntelliSense , Classe astratta di utilizzo selezionato se la classe base dispone di metodi astratti che devono essere implementati.
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