我们理想需要的是,了解Microsoft如何处理XAML生成的代码(那些* .g.cs文件)。如果您转到后面的XAML代码,即使* .g.cs文件不是项目的一部分,intellisense也会工作!
上下文
在自定义VS软件包中,我们需要有一些逻辑来在VS IDE中打开CS文件(不要让它成为项目的一部分),以允许用户编辑它。
我们正在将文档连接到Running文档表,并使用IVSRunningDocumentTable接收诸如Saving,Close和all之类的事件。效果很好。
现在的问题是,当文档被打开时,Intellisense无法工作,原因很简单,打开的文档不是项目的一部分(遗憾的是,我们不能这样做,我们无法做到代码背后)。
答案 0 :(得分:3)
Intellisense由标识符和类型的内存缓存驱动。这些类型根据您所在的项目和项目的引用进行缓存。如果您正在编辑的代码文件不是项目的一部分,则Visual Studio必须加载每个可能的程序集并为整个.NET框架中的每种类型创建intellisense数据,因为它无法知道您的代码文件是否存在需要它。
我猜Visual Studio 可以根据文件内容加载智能感知,但这不是它目前的工作方式。
答案 1 :(得分:0)
整个番茄的Visual Assist X是VS的一个插件,我已经使用了很多年。当你打开它时,它会给你智能感知和更多。