-1

我试图在输入 C# 代码时对其进行评估,把它想象成我正在尝试编写一个 IDE。

所以一个人敲代码,我想看看他刚才写了什么代码:

String x = "";

我现在想注册 x 是一种字符串。现在每次用户再次键入 x,我想向他展示他可以用 x 做的所有事情,基本上就像 Visual Studio Intellisense。

我需要一些词法分析器或解析器吗?这会让事情变得更容易吗?我听说 VS 2010 有一些微软已经发布的特性。有任何想法吗?

4

3 回答 3

0

我认为 .NET 4 对此没有任何帮助。您可能会查看Mono REPL。如果您提供有关您实际想要做什么的更多详细信息,它也可能会有所帮助。

于 2010-04-22T04:49:44.227 回答
0

您可以使用 DLR 来帮助解决此问题。有关示例,请参见codeplex上的DLRPad

如果在 CLR 中使用 DLR 询问类型比在 C# 中使用反射更容易。上次我看(大约 9 个月前)时,我认为智能感知已经使用这种技术实现,因为我们将以同样的方式进行。

于 2010-04-22T04:10:16.040 回答
0

如果可以的话,我会避免自己写这个。 SharpDevelop是一个开源 .NET IDE,具有类似 Intellisense 的功能。我相信您可以将他们的编辑器嵌入到您自己的项目中。根据 Wikipedia,许可证是 LGPL,因此您甚至可以在封闭源代码项目中使用它。当然,在这样做之前,您应该自己验证这一点。

Actipro SyntaxEditor是您可以购买的第三方控件。该控件有 WinForms 和 WPF 版本。它对我们来说效果很好。它目前不支持带有 LINQ 和 lambda 表达式的 Intellisense。我不知道 SharpDevelop 是否支持这个。

于 2010-04-22T04:32:19.257 回答