1

我想为 Visual Studio 2010 构建语言服务。我首先尝试遵循MSDN的教程和文档。

问题是我没有成功地做到这一点(我稍后会解释我的问题)。所以我深入研究了现有的实现,我发现了Ook!lua。这两个项目都没有使用我在 MSDN 上找到的教程或文档,而是基于 MEF。Lua 仅在以前的 Visual Studio 版本中使用它。

所以我想知道我是否使用过时的方法来创建语言服务(但文档的目标是 Visual Studio 2010),或者有不同的方法可以做到这一点,这取决于需要。

就我而言,我有一种不需要编译成 cli 的语言,但我想要一个具有着色、语法警告和错误、智能感知的编辑器......

我提到的问题是,在启动 exp 实例时,没有带有我的文件扩展名的文本编辑器,并且 Visual Studio 开始有很多滞后。语言服务使用 3 个属性注册:ProvideServiceAttribute、ProvideLanguageServiceAttribute 和 ProvideLanguageServiceExtension。也在 Package intialize 方法中初始化,就像在Proffer the Language ...中提到的那样。当我尝试使用我的扩展名打开文件时加载包,语言服务被初始化。

所以我不明白为什么我不工作,请你帮我了解语言服务是如何工作的,以及实现它的最佳方式是什么

谢谢

4

1 回答 1

1

很有可能你的IScanner实现有一个无限循环,发生在我身上。

于 2012-07-20T15:42:49.223 回答