Udostępnij za pośrednictwem


Kolorowania składni w edytorach niestandardowych

Edytory zestawu SDK środowiska Visual Studio, w tym edytor podstawowy, używają usług językowych do identyfikowania określonych elementów składniowych i wyświetlania ich z określonymi kolorami dla danego widoku dokumentu.

Wymagania dotyczące kolorowania

Wszystkie edytory wdrażające kolorowanie usługi językowej muszą:

  1. Użyj implementowania IVsTextBuffer obiektu, aby zarządzać tekstem, który ma być kolorowany, oraz implementowanie obiektu IVsTextView w celu udostępnienia widoku dokumentu tekstu.

  2. Uzyskaj interfejs dla określonej usługi językowej, wysyłając zapytanie do dostawcy usług VSPackage przy użyciu identyfikatora GUID usługi języków.

  3. Wywołaj metodę SetLanguageServiceID obiektu implementowania IVsTextBufferobiektu . Ta metoda kojarzy usługę językową z implementacją używaną IVsTextBuffer przez pakiet VSPackage do zarządzania tekstem, który ma być kolorowany.

Użycie edytora podstawowego colorizatora usługi językowej

Gdy usługa językowa z kolorizerem jest uzyskiwana przez wystąpienie edytora podstawowego, analizowanie i renderowanie tekstu przez colorizator usługi językowej odbywa się automatycznie bez konieczności dalszej interwencji ze strony użytkownika.

Środowisko IDE w sposób niewidoczny:

  • Wywołuje kolorizer zgodnie z potrzebami, aby przeanalizować i przeanalizować tekst podczas dodawania lub modyfikowania w implementacji programu IVsTextBuffer.

  • Gwarantuje, że ekran dostarczony przez widok dokumentu dostarczony przez IVsTextView implementację zostanie zaktualizowany i ponownie za pomocą informacji zwróconych przez colorizator.

Użycie nierdzeniowego edytora w kolorze usługi językowej

Wystąpienia edytora nierdzeniowego mogą również używać usługi kolorowania składni usługi językowej, ale muszą jawnie pobrać i zastosować colorizator usługi oraz przemalować same widoki dokumentów.

Aby to zrobić, edytor nierdzeniowy musi:

  1. Uzyskaj obiekt colorizatora usługi językowej (który implementuje IVsColorizer i IVsColorizer2). Pakiet VSPackage wykonuje to przez wywołanie GetColorizer metody w interfejsie usługi językowej.

  2. Wywołaj metodę , ColorizeLine aby zażądać, aby określony zakres tekstu był kolorowany.

    Metoda ColorizeLine zwraca tablicę wartości, jedną dla każdej litery w zakresie tekstu, który jest kolorowany. Identyfikuje również zakres tekstu jako określony typ elementu kolorowego, taki jak komentarz, słowo kluczowe lub typ danych.

  3. Użyj informacji kolorowania zwracanych przez ColorizeLine usługę , aby przemalować i wyświetlić jego tekst.

Uwaga

Oprócz używania colorizatora usługi językowej pakiet VSPackage może użyć ogólnego przeznaczenia mechanizmu kolorowania tekstu zestawu VISUAL Studio Environment SDK. Aby uzyskać więcej informacji na temat tego mechanizmu, zobacz Używanie czcionek i kolorów.