Jak to zrobić: rozszerzenie podświetlania składni Visual Studio

Chcę opracować rozszerzenie do VS2010, które pozwoli mi na wprowadzenie dodatkowych funkcji do podświetlania składni.

Zainstalowałem SDK, od czego zacząć?

Proszę podać mały fragment (lub link do kodu) Gdzie mogę zobaczyć jak zacząć.

Uwaga: Czy muszę sprawdzać cały blok kodu, czy SDK mówi mi na każdym słowie, co to jest, jak jest deklarowane itp.?

Author: Shimmy, 2010-07-15

2 answers

Jest sporo informacji do pisania klasyfikatorów. Jakiś czas temu napisałem o tym artykuł na blogu.

Jeśli chodzi o sample / kod, to jest:

Odpowiedź na drugą część twojego pytania o to, czy SDK mówi ci, czym jest każde słowo, odpowiedź brzmi "nie", z kilkoma" rodzajami " zastrzeżeniami. Ogólnie rzecz biorąc, podstawowe modele językowe nie są eksponowane, chociaż można robić takie rzeczy, jak spożywać informacje klasyfikacyjne z innych klasyfikatorów w nadziei, że będą one daje wystarczająco dużo informacji; niektóre, takie jak C#, mają tendencję do podawania dużej ilości informacji, które mogą nie pojawiać się w IDE w domyślnych ustawieniach czcionek i kolorów (sprawdź Narzędzia->Opcje->środowisko->Ustawienia czcionek i kolorów, aby zobaczyć, czy chcesz je zmienić), a inne, takie jak VB, mają tendencję do tego. Możesz również używać takich rzeczy jak CodeModel DTE, ale nigdy nie słyszałem, aby ktoś miał z nim naprawdę dobre doświadczenia.

Jeśli chcesz przykład spożywania informacje klasyfikacyjne, można zobaczyć, jak to CommentTextTagger.cs (część rozszerzenia sprawdzającego pisownię) to robi.

 21
Author: Noah Richards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-16 05:54:18

Możesz sprawdzić

Http://code.msdn.microsoft.com/ookLanguage

Który ma zakreślacz składni w " OokTokenTag.cs " w C# sample. Oczywiście musisz przeanalizować cały blok tekstu, ale nie jest to zbyt trudne.

(znaleziono ten link z http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/657212c1-1685-4ed6-be2f-cbf34fcc5b20)

 2
Author: Brian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-15 18:06:28