Condividi tramite


modello di un servizio di linguaggio

Un servizio di linguaggio definisce gli elementi e le funzionalità per un linguaggio specifico e viene utilizzato per specificare l'editor con informazioni specifiche del linguaggio. Ad esempio, l'editor necessario conoscere gli elementi e le parole chiave del linguaggio per supportare la colorazione della sintassi.

Il servizio di linguaggio è strettamente con il buffer di testo gestito tramite l'editor e la visualizzazione contenente l'editor. l'opzione di Microsoft IntelliSense informazioni rapide è un esempio di una funzionalità fornita da un servizio di linguaggio.

Un servizio di linguaggio minimo

Il servizio di linguaggio più elementare contiene i seguenti due oggetti:

  • il servizio di linguaggio implementa l'interfaccia di IVsLanguageInfo . Un servizio di linguaggio sono disponibili informazioni sul linguaggio, inclusi il nome, estensioni di file, amministratore di finestra del codice e colorizer.

  • il colorizer implementa l'interfaccia di IVsColorizer .

Nell'area di disegno concettuale seguente viene illustrato un modello di un servizio di linguaggio di base.

Modello di base del servizio di linguaggio

Rappresentazione grafica di Language Service Model

La finestra del documento contiene il punto di vista del documento dell'editor, in questo caso l'editor di Visual Studio . La visualizzazione del documento e il buffer di testo sono proprietà dell'editor. Funzionamento di questi oggetti con Visual Studio tramite una finestra del documento specializzata ha chiamato una finestra del codice. La finestra del codice è contenuta in un oggetto diIVsWindowFrame creato e controllato dall'IDE.

Quando un file con un'estensione specificata viene caricato, l'editor individuare il servizio di linguaggio associato a tale estensione e passa alla finestra del codice chiamando il metodo di GetCodeWindowManager . Il servizio di linguaggio restituisce un amministratore di finestra del codice, che implementa l'interfaccia di IVsCodeWindowManager .

Nella tabella seguente vengono forniti i cenni preliminari sugli oggetti nel modello.

Componente

Object

Funzione

buffer di testo

VsTextBuffer

Un flusso di testo di lettura/scrittura Unicode. È possibile che il testo utilizza altre codifiche.

Finestra del codice

VsCodeWindow

Una finestra del documento contenente uno o più visualizzazioni di testo. Quando Visual Studio è in modalità (MDI) di interfaccia a documenti multipli (MDI), la finestra del codice è un figlio MDI.

Visualizzazione di testo

VsTextView

Una finestra che consente di esplorare e visualizzare il testo utilizzando la tastiera e il mouse. Una visualizzazione di testo viene visualizzata all'utente come editor. È possibile utilizzare le visualizzazioni di testo nelle finestre dell'editor comuni, nella finestra di output e nella finestra di controllo immediato. Inoltre, è possibile configurare una o più visualizzazioni di testo all'interno di una finestra del codice.

Amministratore del testo

Gestito dal servizio di SVsTextManager , per il quale si ottiene un puntatore a IVsTextManager

Un componente che gestisce le informazioni comuni condivise da tutti i componenti descritte in precedenza.

servizio di linguaggio

Dipendente di implementazione, implementa IVsLanguageInfo

Un oggetto che fornisce l'editor con informazioni specifiche del linguaggio come l'evidenziazione, il completamento delle istruzioni e la corrispondenza di parentesi graffe di sintassi.

Vedere anche

Concetti

Dati del documento e visualizzazione del documento nell'editor personalizzati