Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 koloryzator usługi językowej muszą:
Użyj obiektu implementującego IVsTextBuffer do zarządzania tekstem, który ma być pokolorowany, oraz obiektu implementującego IVsTextView w celu udostępnienia widoku dokumentu tekstu.
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.
Wywołaj metodę SetLanguageServiceID obiektu implementującego IVsTextBuffer. 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 głównego edytora koloryzatora usługi językowej
Gdy usługa językowa z elementem kolorowania jest uzyskiwana przez wystąpienie głównego edytora, analizowanie i renderowanie tekstu przez element kolorowania usługi językowej odbywa się automatycznie, bez potrzeby dalszej ingerencji użytkownika.
IDE działa przezroczysto:
Wywołuje kolorizer zgodnie z potrzebami, aby przetworzyć i przeanalizować tekst podczas dodawania lub modyfikowania w implementacji IVsTextBuffer.
Gwarantuje, że widok dostarczony przez widok dokumentu zapewniony przez implementację IVsTextView będzie zaktualizowany i ponownie pomalowany przy użyciu informacji zwróconych przez koloryzator.
Użycie niekluczowego edytora z kolorowaniem usługi językowej
Wystąpienia edytora nierdzeniowego mogą również korzystać z usługi językowej do kolorowania składni, ale muszą jawnie pobrać i zastosować koloryzator usługi oraz samodzielnie odświeżyć widoki dokumentów.
Aby to zrobić, edytor nierdzeniowy musi:
Uzyskaj obiekt koloryzatora usługi językowej (który implementuje IVsColorizer i IVsColorizer2). Pakiet VSPackage wykonuje to przez wywołanie metody GetColorizer na interfejsie usługi językowej.
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.
Użyj zwracanych przez ColorizeLine informacji dotyczących kolorowania, aby przemalować i wyświetlić jego tekst.
Uwaga / Notatka
Oprócz używania kolorystyki usługi językowej, pakiet VSPackage może użyć mechanizmu kolorowania tekstu ogólnego przeznaczenia pakietu Visual Studio Environment SDK. Aby uzyskać więcej informacji na temat tego mechanizmu, zobacz Używanie czcionek i kolorów.