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.?
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:
- szablon projektu, który jest dostarczany z SDK (patrz pod C#->Extensibility)
- (odpowiedź Briana) ook language service
- a szablon do pisania klasyfikatorów (link jest źródłem szablonu, więc będziesz musiał usunąć szablon $foo$ części)
- a diff classifier (dość stary)
- kilka innych klasyfikatorów w różnych projektach na mojej stronie github.
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.
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)
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