Jak utworzyć nowy język do użytku w programie Visual Studio


102

Chcę napisać nowy język szablonów i chcę, aby program Visual Studio go „obsługiwał”. Muszę wiedzieć:

  1. Jak przeanalizować nowy język?
    Biorąc pod uwagę kod w moim nowym języku szablonów, jak przetłumaczyć go na HTML? W tej chwili używam wyrażeń regularnych do analizowania tego tokenu po tokenie, ale nie sądzę, żeby to się skalowało zbyt dobrze, ponieważ język staje się bardziej skomplikowany i nie ma sprawdzania błędów. Słyszałem o ANTLR, ale nigdy go nie używałem. Czy byłoby to właściwe narzędzie do tej pracy, czy może jest coś prostszego? Najlepiej byłoby, gdyby wszelkie błędy składni były wysyłane do okna błędu z możliwie największą ilością informacji (numer linii, typ błędu), tak jak robią to inne języki.
  2. Jak utworzyć nowy typ pliku dla programu Visual Studio?
  3. Jak uzyskać podświetlanie składni?
    Czy mogę użyć tego samego parsera, który utworzyłem w kroku 1, czy jest to coś zupełnie innego?
  4. Jak uzyskać Intellisense?

Wolę pisać mój parser w C #.

Odpowiedzi:


62

Przyjrzałbym się innemu językowi, który wykonał już część pracy związanej z integracją z Visual Studio. Świetnym przykładem jest Boo. Język i integracja z programem Visual Studio to oprogramowanie typu open source. Możesz więc przyjrzeć się dokładnie, co musieli zrobić.

Podświetlanie składni Boo dla VS2010 zawiera kilka zalecanych linków na jego stronie głównej, które skopiuję dla ułatwienia:


29

Jeśli chodzi o aspekty Visual Studio, potrzebna jest „usługa językowa”, czyli jednostka obsługująca kolorowanie, inteligencję itp. Dla danego rozszerzenia / typu pliku.

Aby zapoznać się z wprowadzeniem, zobacz ten artykuł,
a przykładowy kod znajdziesz tutaj

Jeśli chodzi o parsowanie, istnieje wiele technologii i nie będę przedstawiać opinii ani porad.

Uważaj, wymaga to sporo pracy, chociaż moim zdaniem w VS2010 jest znacznie łatwiej niż w poprzednich wersjach Visual Studio, aby zapewnić tego rodzaju rozszerzenie.

Zobacz też

Visual Studio 2010 Extensibility, MPF i usługi językowe



2

W VS SDK znajduje się próbka, która przedstawia większość funkcji, których szukasz.




0

Jak wspomniano w innych odpowiedziach, najciekawszym przykładem kodu jest rozszerzenie języka Ook dla najnowszej wersji programu Visual Studio (2017 w momencie pisania).

W przypadku VS 2015 zobacz przykład w gałęzi VS2015 .

Aby zainstalować pakiet SDK dla wersji 2015 lub nowszej, musisz ponownie uruchomić konfigurację VS. W 2015 r. Nosi nazwę „Visual Studio Extensibility Tools Update 3”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.