我正在寻找在 Visual Studio 中为自定义语言创建代码完成。我已经有了一些更简单的编辑器交互的代码,比如语法高亮和大括号匹配。现在我想转到代码完成。但我遇到了一个小问题——数据源。
就像在 C# 之类的语言中一样,我在多个文件之间隐式共享代码。这意味着,为了编写完整的一个文件,我需要知道其他文件的内容。更具体地说,虽然我可以简单地遍历项目和项目项并破解打开文件,但这是一个次优的解决方案。例如,我无法对用户所做的完整未保存更改进行编码。另一方面,我已经做了很多处理工作来对内容进行词法分析或解析来满足用户对语法突出显示等的请求,我不想重复这项工作。
如何访问项目中其他文件的内容,并获取它们的 ITextBuffers,以便我可以重新使用我已经完成的工作?