Condividi tramite


Colorazione della sintassi

Visual Studio utilizza un servizio di colorazione per identificare gli elementi del linguaggio e visualizzare con colori specificati in un editor.

modello di Colorizer

Il servizio di linguaggio implementa l'interfaccia di IVsColorizer , che viene quindi utilizzata dagli editor. Questa implementazione è un oggetto separato dal servizio di linguaggio, come illustrato nella figura seguente.

Modello semplice di colorizer

Rappresentazione grafica dell'applicazione dei colori SVC

Nota

Il servizio di colorazione della sintassi dal meccanismo di generale Visual Studio per assegnare un colore al testo.Per ulteriori informazioni sul colore che supporta il meccanismo di generale Visual Studio SDK , vedere Tipi di carattere.

Oltre a colorizer, il servizio di linguaggio possibile fornire gli elementi colorabili personalizzati utilizzati dall'editor comunicando vocalmente che forniscono gli elementi colorabili personalizzati. Questo è possibile implementando l'interfaccia di IVsProvideColorableItems lo stesso oggetto che implementa l'interfaccia di IVsLanguageInfo . Restituisce il numero di elementi colorabili personalizzati quando l'editor chiama il metodo di GetItemCount e restituisce un singolo elemento il colore personalizzato quando l'editor chiama il metodo di GetColorableItem .

il metodo di GetColorableItem restituisce un oggetto che implementa l'interfaccia di IVsColorableItem . Se valori di bit o di colore attivato di supportare del servizio di linguaggio i 24, deve implementare l'interfaccia di IVsHiColorItem lo stesso oggetto dell'interfaccia di IVsColorableItem .

come un VSPackage utilizza un servizio di linguaggio Colorizer

  1. Il package VS deve ottenere il servizio di linguaggio appropriato, che richiede al servizio di linguaggio VSPackage di eseguire le operazioni seguenti:

    1. Utilizzare un oggetto che implementa l'interfaccia di IVsTextBuffer per ottenere il testo per essere coloratoe.

      Il testo in genere visualizzato utilizzando un oggetto che implementa l'interfaccia di IVsTextView .

    2. Ottenere il servizio di linguaggio eseguire una query sul provider di servizi del package VS per il servizio di linguaggio GUID. I servizi di linguaggio sono identificati nel Registro di sistema dall'estensione di file.

    3. Associare il servizio di linguaggio con IVsTextBuffer chiamando il metodo di SetLanguageServiceID .

  2. Il package VS possibile ottenere e utilizzare l'oggetto del colorizer come segue:

    Nota

    Package VS che utilizza l'editor principale non deve ottenere gli oggetti del colorizer di un servizio di linguaggio in modo esplicito.Una volta creata un'istanza dell'editor principale ottiene un servizio di linguaggio appropriato, esegue tutte le attività di colorazione illustrate in questo argomento.

    1. Ottenere l'oggetto del colorizer del servizio di linguaggio, che implementa T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizere le interfacce di IVsColorizer2 , chiamando il metodo di GetColorizer l'oggetto di IVsLanguageInfo del servizio di linguaggio.

    2. Chiamare il metodo di ColorizeLine per ottenere informazioni di colorizer per un intervallo specifico di testo.

      l'entity_M:Microsoft.VisualStudio.TextManager.Interop.IVsColorizer.ColorizeLine(System.Int32, System.Int32, System.IntPtr, System.Int32, System.UInt32[]) I valori sono indici in un elenco di elementi che il colore è l'elenco di elementi il colore predefinito gestito dall'editor principale o un elenco di elementi il colore personalizzato gestito dal servizio di linguaggio stesso.

    3. Utilizzare le informazioni di colorazione restituite dal metodo di ColorizeLine per visualizzare il testo selezionato.

Nota

Oltre a utilizzare un colorizer del servizio di linguaggio, un VSPackage anche possibile utilizzare il meccanismo di utilizzo generale di colorazione del testo di Visual Studio .per ulteriori informazioni su questo meccanismo, vedere Tipi di carattere.

Argomenti della sezione

Vedere anche

Altre risorse

Tipi di carattere