Condividi tramite


elenco di controllo: creare un servizio di linguaggio

Nell'elenco di controllo vengono riepilogati i passaggi fondamentali che è necessario contenere l'ordine per creare un servizio di linguaggio per l'editor di Visual Studio . Per integrare il servizio di linguaggio in Visual Studio, è necessario creare un analizzatore di espressioni di debug. Per ulteriori informazioni, vedere Scrittura dell'analizzatore di espressioni di Common Language Runtime in Estensibilità del debugger di Visual Studio.

Operazioni necessarie per creare un servizio di linguaggio

  1. Implementare l'interfaccia IVsPackage.

    • Nel package VS, implementare l'interfaccia di IServiceProvider per fornire al servizio di linguaggio.

    • Per rendere il servizio di linguaggio l'ambiente (IDE) di sviluppo integrato nell'implementazione di SetSite .

  2. Implementare l'interfaccia di IVsLanguageInfo nella classe principale del servizio di linguaggio.

    L'interfaccia di IVsLanguageInfo è il punto iniziale di interazione fra l'editor principale e il servizio di linguaggio.

funzionalità facoltative

Le seguenti funzionalità sono facoltative e possono essere implementate in qualsiasi ordine. Queste funzionalità consentono di migliorare la funzionalità del servizio di linguaggio.

  • Colorazione della sintassi

    Implementare l'interfaccia IVsColorizer. L'implementazione di questa interfaccia se le informazioni del parser restituiscono informazioni sui colori appropriate.

    il metodo di GetColorizer restituisce l'interfaccia di IVsColorizer . Un'istanza separata del colorizer viene creata per ciascun buffer di testo, pertanto è necessario implementare separatamente l'interfaccia di IVsColorizer . Per ulteriori informazioni, vedere Colorazione della sintassi.

  • Finestra del codice

    Implementare l'interfaccia di IVsCodeWindowManager per consentire al servizio di linguaggio per ricevere la notifica di quando una nuova finestra del codice viene creata.

    il metodo di GetCodeWindowManager restituisce l'interfaccia di IVsCodeWindowManager . Il servizio di linguaggio quindi possibile aggiungere l'interfaccia utente speciale per la finestra del codice in AddAdornments. Il servizio di linguaggio anche eseguire l'elaborazione speciale, quali l'aggiunta di un filtro di visualizzazione di testo in OnNewView.

  • Filtro di visualizzazione di testo

    Per fornire il completamento di istruzioni in IntelliSense in un servizio di linguaggio, è necessario rilevare alcuni dei controlli della visualizzazione di testo gestirebbe in caso contrario. Per intercettare tali controlli, completare i passaggi seguenti:

    I controlli che devono essere gestiti dipendono dai servizi forniti da. Per ulteriori informazioni, vedere Controlli importanti per i filtri del servizio di linguaggio.

    Nota

    L'interfaccia di IVsTextViewFilter devono essere implementate nello stesso oggetto dell'interfaccia di IOleCommandTarget .

  • Completamento istruzioni

    Implementare l'interfaccia IVsCompletionSet.

    Supportare il comando di completamento delle istruzioni (ovvero COMPLETEWORD) e chiamare il metodo di UpdateCompletionStatus interfaccia di IVsTextView , passando l'interfaccia di IVsCompletionSet . Per ulteriori informazioni, vedere Completamento delle istruzioni.

  • suggerimenti di metodo

    Implementare l'interfaccia di IVsMethodData per fornire dati per la finestra dell'hint del metodo.

    Installare il filtro di visualizzazione di testo per gestire i controlli in modo appropriato, in modo che si conosce quando visualizzare una finestra del suggerimento dati di metodo. Per ulteriori informazioni, vedere Descrizioni comandi di informazioni parametri.

  • marcatori di errori

    Implementare l'interfaccia IVsTextMarkerClient.

    Creare il marcatore di errori) che implementano l'interfaccia di IVsTextMarkerClient e chiama il metodo di CreateLineMarker , passando l'interfaccia di IVsTextMarkerClient dell'oggetto del marcatore di errori.

    In genere ogni marcatore di errori gestisce un elemento nella finestra elenco attività.

  • Elementi di elenco attività

    Implementare una classe di attività che fornisce l'interfaccia di IVsTaskItem .

    L'implementazione di una classe di provider di attività che fornisce l'interfaccia di IVsTaskProvider e l'interfaccia di IVsTaskProvider2 .

    Implementare una classe dell'enumeratore di attività che fornisce l'interfaccia di IVsEnumTaskItems .

    Register the task provider with the task list's RegisterTaskProvider method.

    Ottenere l'interfaccia di IVsTaskList chiamando il provider di servizi del servizio di linguaggio con il servizio il GUID SVsTaskList.

    Creare gli oggetti dell'elemento attività e chiamare il metodo di RefreshTasks interfaccia di IVsTaskList quando sono disponibili nuove o attività aggiornate.

  • elementi attività di commento

    utilizzare l'interfaccia di IVsCommentTaskInfo e l'interfaccia di IVsEnumCommentTaskTokens per ottenere i token di attività di commento.

    Ottenere un'interfaccia di IVsCommentTaskInfo dal servizio di SVsTaskList .

    Ottenere l'interfaccia di IVsEnumCommentTaskTokens dal metodo di EnumTokens .

    Implementare l'interfaccia di IVsTaskListEvents per ascoltare le modifiche nell'elenco di token.

  • Struttura

    Esistono diverse opzioni per il supporto della struttura. Ad esempio, è possibile supportare il comando di Comprimi alle definizioni , immettere le aree controllate dall'editor della struttura, o supportare le aree selezionate a client. Per ulteriori informazioni, vedere Procedura: Fornire il supporto esteso della struttura.

  • Registrazione del servizio di linguaggio

    per ulteriori informazioni su come registrare un servizio di linguaggio, vedere registrare un servizio di linguaggio e Caricamento package VS..

  • Guida sensibile al contesto

    Fornire contesto all'editor in uno dei modi seguenti:

Specificare qualsiasi contesto utente implementando l'interfaccia di IVsLanguageContextProvider .

Vedere anche

Altre risorse

Compilare un servizio di linguaggio

Scrittura dell'analizzatore di espressioni di Common Language Runtime