Condividi tramite


Colorazione della sintassi negli editor personalizzati

Gli editor di Visual Studio Environment SDK, incluso l'editor principale, usano i servizi di linguaggio per identificare elementi sintattici specifici e visualizzarli con i colori specificati per una determinata visualizzazione documento.

Requisiti di colorazione

Tutti gli editor che implementano il colorizer di un servizio di linguaggio devono:

  1. Utilizzare un oggetto che implementa IVsTextBuffer per gestire il testo da colorare e un oggetto che implementa IVsTextView per fornire una visualizzazione documento del testo.

  2. Ottenere un'interfaccia a un particolare servizio linguistico eseguendo una query sul provider di servizi vsPackage usando il GUID di identificazione del servizio lingue.

  3. Chiamare il SetLanguageServiceID metodo dell'oggetto che implementa IVsTextBuffer. Questo metodo associa il servizio di linguaggio all'implementazione IVsTextBuffer usata dal VSPackage per gestire il testo da colorare.

Utilizzo dell'editor principale di un colorizer di un servizio di linguaggio

Quando un servizio linguistico con un colorizer viene ottenuto da un'istanza dell'editor principale, l'analisi e il rendering del testo da parte del coloritore di un servizio linguistico viene eseguito automaticamente senza richiedere ulteriori interventi da parte dell'utente.

IDE in modo trasparente:

  • Chiama il coloritore in base alle esigenze per analizzare e analizzare il testo man mano che viene aggiunto o modificato nell'implementazione di IVsTextBuffer.

  • Garantisce che la visualizzazione fornita dalla visualizzazione documento fornita dall'implementazione IVsTextView venga aggiornata e reinsediata utilizzando le informazioni restituite dal colorizer.

Utilizzo dell'editor non principale di un colorizer di un servizio di linguaggio

Le istanze dell'editor non core possono anche usare il servizio di colorazione della sintassi di un servizio di linguaggio, ma devono recuperare e applicare in modo esplicito il colorizer del servizio e riavpingerne le visualizzazioni dei documenti.

A tale scopo, un editor non core deve:

  1. Ottenere l'oggetto colorizer di un servizio di linguaggio (che implementa IVsColorizer e IVsColorizer2). Il VSPackage esegue questa operazione chiamando il GetColorizer metodo sull'interfaccia del servizio di linguaggio.

  2. Chiamare il ColorizeLine metodo per richiedere la colorazione di un determinato intervallo di testo.

    Il ColorizeLine metodo restituisce una matrice di valori, una per ogni lettera nell'intervallo di testo da colorizzare. Identifica inoltre l'intervallo di testo come un particolare tipo di elemento colorabile, ad esempio un commento, una parola chiave o un tipo di dati.

  3. Usare le informazioni di colorazione restituite da ColorizeLine per riassegnare e visualizzarne il testo.

Nota

Oltre a usare il colorizer di un servizio di linguaggio, un PACCHETTO VSPackage può scegliere di usare il meccanismo di colorazione del testo di Visual Studio Environment SDK per utilizzo generico. Per altre informazioni su questo meccanismo, vedere Uso di tipi di carattere e colori.