gpt4 book ai didi

使用 NRefactory 5 完成 C# 代码

转载 作者:太空狗 更新时间:2023-10-29 20:10:46 26 4
gpt4 key购买 nike

我刚刚发现 NRefactory 5,我猜它是最适合我当前问题的解决方案。目前我正在开发一个小的 C# 脚本应用程序,我想为其提供代码完成。直到最近,我才使用 Microsoft 的“Roslyn”项目完成这项工作。但由于该项目的最新更新需要 .Net Framework 4.5,我不能再使用它,因为我希望该应用程序也能在 Win XP 下运行。所以我必须在这里切换到另一种技术。

我的问题不是编译的东西。这也可以通过 .Net CodeDomProvider 来完成,但需要付出更多努力。问题是代码完成的东西。据我所知,NRefactory 5 提供了提供代码完成所需的一切(解析器、类型系统等),但我只是不知道如何使用它。我查看了 SharpDevelop 源代码,但他们没有使用 NRefactory 5 来完成代码,他们只将它用作反编译器。由于我在网上也找不到关于如何使用它完成代码的示例,所以我想我可能会在这里找到一些帮助。

情况如下。我有一个包含脚本代码的文件。实际上,它甚至不是一个文件,而是我从编辑器控件中获取的一个字符串(顺便说一下:我正在为此使用 AvalonEdit。很棒的编辑器!)和一些需要引用的程序集。因此,没有解决方案文件、项目文件等。只有一串源代码和程序集。

我看了 NRefactory 5 附带的 Demo 和代码项目的文章,得到了这样的东西:

var unresolvedTypeSystem = syntaxTree.ToTypeSystem();

IProjectContent pc = new CSharpProjectContent();

// Add parsed files to the type system
pc = pc.AddOrUpdateFiles(unresolvedTypeSystem);

// Add referenced assemblies:
pc = pc.AddAssemblyReferences(new CecilLoader().LoadAssemblyFile(
System.Reflection.Assembly.GetAssembly(typeof(Object)).Location));

我的问题是我不知道如何继续。我什至不确定这是否是实现我的目标的正确方法。如何使用CSharpCompletionEngine?还需要什么?等。您看到目前有很多事情还不清楚,我希望您能对此有所启发。

非常感谢大家!

最佳答案

我刚刚编译了使用 AvalonEdit 和 NRefactory 完成 C# 代码的示例项目。

可以是found on Github here.

关于使用 NRefactory 5 完成 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12506646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com