Condividi tramite


Utilizzo dei modelli dell'editor per creare estensioni

È possibile utilizzare i modelli inclusi in Visual Studio 2010 SDK per creare le estensioni di base dell'editor per l'aggiunta dei classificatori, gli attributi e i margini l'editor.

Prerequisiti

Per utilizzare i modelli di estensione di editor, è 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.

creare un'estensione di classificatore

Il modello di classificatore dell'editor viene creato un classificatore editor che colore del testo appropriato (in questo caso, tutto) nel file di testo.

Per creare un'estensione di classificatore tramite il modello di classificatore editor

  1. Nel menu File, puntare a nuovo quindi fare clic su nuovo progetto. Nella finestra di dialogo di nuovo progetto , espandere Visual C# o Visual Basic quindi fare clic su Estensibilità. Nel riquadro di modelli , Classificatore editorselezionato. Nella casella di Nome , tipo TestClassifier. Scegliere OK.

    il progetto TestClassifier è aperto.

  2. Aprire il file source.extension.vsixmanifest e modificarlo come segue:

    • Nome del prodotto: TestClassifier

    • autore: Fabrikam

    • versione: 1,0

    • descrizione: Ciò è un'estensione di classificatore del test.

    Non modificare l'id Viene generato automaticamente.

  3. L'intestazione di contenuto specifica il tipo di contenuto nel progetto (directory dei modelli di progetto, directory dei modelli di elemento, creazione guidata modelli, VSPackage, componente MEF, o un tipo di estensione personalizzato). Un progetto può contenere uno o più tipi di contenuto, ad esempio, un VSPackage e componente MEF. Questa estensione è un componente MEF e il contenuto è definito in TestClassifier.

  4. Esistono tre file di codice, come segue:

    • TestClassifierType contiene la classe di OrdinaryClassificationType .

    • TestClassifierFormat contiene la classe di OrdinaryFormat .

    • TestClassifier contiene la classe di OrdinaryClassifier e la classe di OrdinaryClassifierProvider .

  5. La classe OrdinaryFormat eredita da ClassificationFormatDefinition e definisce gli effetti visivi che la formattazione produce, in questo caso, il colore del carattere BlueViolet e un Underline. Questa classe viene esportata insieme a NameAttribute, utilizzata per identificare il classificatore. Per ulteriori informazioni sulle classificazioni, vedere la sezione “l'estensione dei tipi di classificazione e formati di classificazione„ di Punti di estensione di editor.

  6. The OrdinaryFormat class inherits from the ClassificationFormatDefinition, and defines the visual effects that the formatting will produce, in this case, a BlueViolet font color and a Underline. questa classe deve essere esportata come tipo di EditorFormatDefinition . È possibile specificare se la formattazione è visibile all'utente tramite UserVisibleAttributeed è possibile specificare l'ordine in cui il formato viene applicato al testo utilizzando OrderAttribute.

  7. La classe di OrdinaryClassifier implementa il metodo di GetClassificationSpans che individua il testo che deve essere specificato utilizzando il classificatore “comune„ (in questo caso, tutto il testo).

  8. La classe di OrdinaryClassifierProvider eredita da IClassifierProvidere implementa il metodo di GetClassifier , che crea un'istanza del classificatore. Questa classe viene esportata insieme a ContentTypeAttribute, che specifica il tipo di contenuto (testo, codice o, e così via) che il classificatore viene applicato. Accetta TextViewRoleAttribute, che specifica il tipo di visualizzazione di testo, che può essere uno dei valori di PredefinedTextViewRoles.

  9. Quando si compila la soluzione, le copie dell'assembly e del manifesto vengono inserite nella directory sperimentale.

  10. Quando si esegue il progetto nel debugger, una seconda istanza di Visual Studio viene creata un'istanza. Se si apre un file di testo, il testo viene visualizzato come sottolineato su uno sfondo viola.

Creare un'estensione dell'area di Testo-Parente

Il modello dell'area di controllo del testo dell'editor viene creato un ornamento di testo-parente da decorare tutte le istanze del carattere “a„ di testo tramite una casella con una struttura rosso e uno sfondo blu. È testo-parente perché la casella sovrapposte sempre i caratteri “a„, anche quando vengono spostati o riformattati.

Per creare un'estensione dell'area di controllo di testo utilizzando l'editor di testo al modello dell'area di controllo

  1. Nel menu File, puntare a nuovo quindi fare clic su nuovo progetto. Nella finestra di dialogo di nuovo progetto , espandere Visual C# o Visual Basic quindi fare clic su Estensibilità. Nel riquadro di modelli , Area di controllo del testo dell'editorselezionato. Nella casella di Nome , tipo TestTextAdornment. Scegliere OK.

    il progetto TestTextAdornment è aperto.

  2. Aprire il file source.extension.vsixmanifest e modificarlo come segue:

    • Nome del prodotto: TestTextAdornment

    • autore: Fabrikam

    • versione: 1,0

    • descrizione: Ciò è un'estensione dell'area di testo-parente del test.

    Non modificare l'id Viene generato automaticamente.

  3. L'intestazione di contenuto specifica il tipo di contenuto nel progetto. Questa estensione è un componente MEF e il contenuto è definito in TestTextAdornment.

  4. Esistono due file di codice, come segue:

    • TestTextAdornment contiene la classe di ScarletCharacter .

    • TestTextAdornmentFactory contiene la classe di EditorAdornmentFactory .

  5. La classe di ScarletCharacter fornisce le funzionalità dell'(UI) interfaccia utente dell'area di controllo nel proprio costruttore e gestisce l'evento di LayoutChanged cercando tutte le occorrenze del carattere “a„ in IWpfTextView e aggiungono ornamenti di ScarletCharacter.

  6. La classe di EditorAdornmentFactory eredita da IWpfTextViewCreationListener e implementa il metodo di TextViewCreated creare un'istanza dell'area di controllo. Questa classe viene dichiarata AdornmentLayerDefinition che corrisponde all'ornamento di ScarletCharacter e si esporta insieme a NameAttribute, a OrderAttributee a TextViewRoleAttribute.

  7. Quando si compila la soluzione, le copie dell'assembly e del manifesto vengono inserite nella directory sperimentale.

  8. Quando si esegue il progetto nel debugger, una seconda istanza di Visual Studio viene creata un'istanza. Se si apre un file di testo, tutti i caratteri “a„ nel testo visualizzato come descritto in rosso su uno sfondo blu.

Creare un'estensione dell'area di Viewport-Parente

Il modello dell'area di controllo del riquadro di visualizzazione dell'editor viene creato un ornamento di viewport-parente che aggiunge una casella viola con una struttura rossa nell'angolo superiore destro del riquadro di visualizzazione.

Nota

Il riquadro di visualizzazione rappresenta l'area della visualizzazione di testo attualmente visualizzati.

Per creare un'estensione dell'area di controllo del riquadro di visualizzazione utilizzando il modello dell'area di controllo del riquadro di visualizzazione dell'editor

  1. Nel menu File, puntare a nuovo quindi fare clic su nuovo progetto. Nella finestra di dialogo di nuovo progetto , espandere Visual C# o Visual Basic quindi fare clic su Estensibilità. Nel riquadro di modelli , Area di controllo del riquadro di visualizzazione dell'editorselezionato. Nella casella di Nome , tipo TestViewportAdornment. Scegliere OK.

    il progetto TestViewportAdornment è aperto.

  2. Aprire il file source.extension.vsixmanifest e modificarlo come segue:

    • Nome del prodotto: TestViewportAdornment

    • autore: Fabrikam

    • versione: 1,0

    • descrizione: Ciò è un'estensione dell'area di viewport-parente del test.

    Non modificare l'id Viene generato automaticamente.

  3. L'intestazione di contenuto specifica il tipo di contenuto nel progetto. Questa estensione è un componente MEF e il contenuto è definito in TestViewportAdornment.

  4. Esistono due file di codice, come segue:

    • TestViewportAdornment contiene la classe di PurpleCornerBox

    • TestViewportAdornmentFactory contiene la classe di AdornmentFactory

  5. La classe di PurpleCornerBox fornisce funzionalità dell'interfaccia utente dell'area di controllo nel relativo costruttore e gestisce gli eventi di ViewportWidthChanged e di ViewportHeightChanged l'eliminazione e dall'ri-aggiunta ornamenti al l'angolo del riquadro di visualizzazione.

  6. La classe di AdornmentFactory eredita da IWpfTextViewCreationListenere implementa il metodo di TextViewCreated creare un'istanza dell'area di controllo. Questa classe viene dichiarata AdornmentLayerDefinition che corrisponde all'ornamento di PurpleCornerBox e si esporta insieme a NameAttribute, a OrderAttributee a TextViewRoleAttribute.

  7. Quando si compila la soluzione, le copie dell'assembly e del manifesto vengono inserite nella directory sperimentale.

  8. Quando si esegue il progetto nel debugger, una seconda istanza di Visual Studio viene creata un'istanza. Se si apre un file di testo, una casella di con una struttura rosso verrà visualizzato nell'angolo in alto a destra del riquadro di visualizzazione.

Creare un'estensione del margine

Il modello del margine dell'editor viene creato un bordo verde che viene visualizzata insieme al mondo di parole “hello!„ nella barra di scorrimento orizzontale.

Per creare un'estensione del bordo utilizzando l'editor marginare il modello

  1. Nel menu File, puntare a nuovo quindi fare clic su nuovo progetto. Nella finestra di dialogo di nuovo progetto , espandere Visual C# o Visual Basic quindi fare clic su Estensibilità. Nel riquadro di modelli , Margine dell'editorselezionato. Nella casella di Nome , tipo TestMargin. Scegliere OK.

    il progetto TestMargin è aperto.

  2. Aprire il file source.extension.vsixmanifest e modificarlo come segue:

    • Nome del prodotto: TestMargin

    • autore: Fabrikam

    • versione: 1,0

    • descrizione: Ciò è un'estensione del margine del test.

    Non modificare l'id Viene generato automaticamente.

  3. L'intestazione di contenuto specifica il tipo di contenuto nel progetto. Questa estensione è un componente MEF e il contenuto è definito in TestMargin.

  4. Esistono due file di codice, come segue:

    • TestMargin contiene la classe di GreenMargin .

    • TestMarginFactory contiene la classe di MarginFactory .

  5. la classe di GreenMargin eredita da Canvas e implementa IWpfTextViewMargin. Fornisce funzionalità dell'interfaccia utente del margine nel relativo costruttore.

  6. La classe di MarginFactory implementa IWpfTextViewMarginProvidere l'implementazione del metodo di CreateMargin creare un'istanza del margine. Questa classe viene esportata insieme a NameAttribute, a OrderAttribute, a MarginContainerAttribute, a ContentTypeAttributee a TextViewRoleAttribute.

  7. Quando si compila la soluzione, le copie dell'assembly e del manifesto vengono inserite nella directory sperimentale.

  8. Quando si esegue il progetto nel debugger, una seconda istanza di Visual Studio viene creata un'istanza. Se si apre un file di testo, un bordo verde che dispone del mondo di parole “hello!„ viene visualizzata sotto la barra di scorrimento orizzontale.

Vedere anche

Concetti

Punti di estensione di editor