Может ли visual studio поддерживать наш собственный DSL? - PullRequest
4 голосов
/ 14 мая 2011

при условии, что у меня есть язык, и я хочу создать IDE для него.Есть ли способ «преобразовать» Visual Studio IDE для поддержки моего языка?

Я имею в виду, что мы можем использовать Visual Studio IDE для создания IDE для нашего собственного языка, предоставляя нам поддержку intellisenseи все преимущества ввода кода в полноценной IDE по сравнению с набором кода в блокноте.

Я хотел бы создать текстовый редактор с поддержкой intellisense (хотя IDE не является полноценной), что быбыть доступными инструментами для достижения этой цели (без необходимости писать код с нуля)

Ответы [ 2 ]

6 голосов
/ 14 мая 2011

Visual Studio SDK (FKA VSIP) имеет службы для этих типов интеграции. Некоторые ключевые слова, с которыми вы можете столкнуться:

  • «Языковая служба» - это служба, которую вы реализуете для получения функций языковой поддержки.
  • "Babel" - это имя для фреймворка, который имел различные реализации, сначала в C ++, а затем в управляемой версии
  • «Изолированная оболочка» - это способ уменьшить IDE без стандартных языков
  • «Пакет» - это один из различных типов интеграционных расширений Visual Studio (язык, проект, отладчик)

Вам также понадобится интегрировать какой-то компилятор, который я себе представляю. Для этого вы, вероятно, хотите немного узнать о MSBuild. Вы можете реализовать свою собственную систему проектов, которая может жить рядом с проектами C # и C ++ в файле решения, внедрив пакет проекта.

Вот подкаст из msdn, который показывает управляемую систему babel. http://www.microsoft.com/events/podcasts/default.aspx?topic=Topic-6c8c64f3-9a31-48eb-b73a-e398713027&seriesID=Series-20ced2f1-8223-431e-8c94-b6202158813f.xml&pageId=x7852&source=Microsoft-Podcasts-about-Microsoft-Visual-Studio-2010:-Turn-Ideas-into-Solutions&WT.rss_ev=a

Вот статья о CodeProject, в которой рассказывается о создании языкового сервиса. http://www.codeproject.com/KB/recipes/VSLanguageService.aspx

1 голос
/ 28 мая 2011

Если вы просматриваете Visual Studio Gallery , вы можете получить представление о том, что возможно. Есть некоторые надстройки, связанные с внешними языками, такими как Lua.

-Neil

...