如何解决代码完成/用于嵌入式IronPython脚本的语言服务器
我有一个应用程序,可以将某些c#对象暴露给嵌入式IronPython解释器,如下所示:
using IronPython.Hosting;
namespace ironpy
{
public class Foo
{
public void bar(string message)
{
System.Console.WriteLine(message);
}
}
class Program
{
static void Main(string[] args)
{
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
var test = new Foo();
scope.SetVariable("foo",test);
string code = "foo.bar('Hello')";
engine.Execute(code,scope);
}
}
}
实际上,python源代码来自运行时加载的文本文件。
在VSCode或其他编辑器中编辑这样的源文件时,提供代码完成功能的语言服务器显然不知道将要使用的功能。因此,您无需执行任何代码完成操作,也不会到处出现烦人的错误代码。
是否可以为其中一种常用语言服务器编写某种插件/提示/启动文件,以告诉他们有关导出的C#API的信息,以便在编辑python源文件时完成工作代码?
解决方法
同时,我找到了解决问题的方法:IronPython存根文件
https://github.com/gtalarico/ironpython-stubs
,我认为,定义.py文件并在其中执行代码是最好的方法。然后您可以执行如下的.py文件;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。