2011-05-13 89 views
4

假设我有一种语言,我想为它构建一个IDE。有没有办法“转换”Visual Studio IDE以支持我的语言?视觉工作室可以支持我们自己的DSL吗?

我的意思是我们可以利用Visual Studio IDE为我们自己的语言构建一个IDE,为我们提供intellisense支持,以及在全功能IDE中输入代码与在记事本中输入代码的所有优点。

我想建立一个文本编辑器与智能感知支持(一个IDE虽然不是一个完全成熟的一个),这将是可实现的工具(而不必从头码)

+0

参见[Visual Studio的SDK(http://msdn.microsoft.com/en-us/library/bb166441.aspx) – 2011-05-13 21:35:52

+0

如果您发现转化的Visual Studio太大的下一个任务你最好的选择不是记事本,它是Notepad ++,它就像程序员的记事本,非常适合DSL。 http://notepad-plus-plus.org/ – 2011-05-14 00:21:00

回答

6

可视化Studio SDK(FKA VSIP)为这些类型的集成提供服务。一些关键字,你可能会遇到:

  • “语言服务”是您实现获得语言支持功能
  • “巴别塔”是针对已经有多种实施框架的名字,首先在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