C# 中的“Squiggles”特性

阅读数:56 2008 年 8 月 5 日

话题:.NETC#IDE语言 & 开发

从 VB.NET 开始 就具有的后台编译器,给了开发人员实时的编译器错误反馈,持续地更新代码完成数据,并作为其他特性的宿主。这个功能的缺点在于它不能被关闭,因为太多的特 性要依赖于它拥有的数据。而另一方面,C# 却只有有限的语法检查,而代码完成只在编译时才会完全更新。

这当然不是微软所希望看到的效果。从之前的 VS 2005 开始,C# 团队就尝试在这个功能上跟上 VB 团队的步伐。随着 Live Semantic Errors,也即“Squiggles”的发布,他们终于如愿以偿了。

这个功能直到 VS 2008 才实现,耗费如此长时间的一个原因在于,对于语法检查这样普通的操作,Visual Studio 没有使用真正的 C# 编译器来处理,而是使用为此目的特别设计的一个轻量级伪编译器来完成这一工作。现在通过使用 VS 2008 的语言分析框架(Language Analysis Framework),VS 可以和真正的编译器进行通信了。

根据对DJ Park 的访问,这个功能只会分析在 IDE 中打开的文件。这意味着如果对打开文件的修改造成了其他文件的错误,只有到编译时才能被检测到。

由于进度的原因,这个功能未能在 VS 2008 中发布,不过它将被包含进 Service Pack 1 中。

查看英文原文:"Squiggles" for C#