带有intellisense的内置C#/ VB.Net编辑器 – Roslyn,VSTA还是其他什么?
我需要在我的应用程序中提供脚本function,允许客户使用我们的对象模型扩展其function。 我希望提供一些带有intellisense的集成C#/ VB.Net编辑器,但在查看AvalonEdit和ScintillaNet等产品之后,它们似乎没有提供真正的代码完成,只是一个API,您可以在其中提供自己的列表弹出自动完成列表中显示的项目。
因此,我想知道罗斯琳是否提供了这样的function? 从我遇到的教程和示例中可以看出,Roslyn实际上只是一个编译器服务。
作为最后的手段,客户可以使用像VS Express这样的东西,但集成的编辑器显然更好一些。
(我也遇到了Visual Studio Tools for Applications,听起来很有希望;但是在线资源已有几年历史了,文档/教程也不存在,所以我用这个来填空。)
我不是这个领域的专家。 但既然你还没有收到任何其他回复,我会小心翼翼。
我认为简短的回答是“是”。
查看AvalonEdit和SharpDevelop中的代码,看起来代码完成是最困难的部分之一。 本质上,您必须编写一个编译器(或者解析器,无论如何)来确定完成列表中应该包含哪些项。 Roslyn似乎提供了构建完成列表的工具。 在旧版本中,这些工具与VS编辑器绑定,但我已经看到声明它们在最新版本中是独立的。 如果是这样,这些工具在实现代码完成方面非常有用。
我根本没有真正研究细节,但我打算,因为我和你有一些相同的目标,而Roslyn看起来会有所帮助(基于我目前所知,这不是很多)。
您提出了一个非常有趣的说法,“在查看AvalonEdit,SharpDevelop和ScintillaNet等产品后,它们似乎无法提供真正的代码完成智能感知”。 SharpDevelop是一个完整的IDE,为什么你找不到“真正的”代码完成Intellisense? 您必须提供一些证据,或该声明无效。
您想要实现的目标只能通过两个重要组件来实现,
正如@Mystere Man所指出的,Visual Studio Shell可能会为您提供一些帮助。 但我个人对此并不了解。
我真的很难使用其中一个内置组件,但最终自己实现了一个。 在探索了RichTextBox api一天后,您可以轻松地构建此支持。 只需使用PreviewKeyDown / Up,确保使用撤消支持等一系列工作。
上述就是C#学习教程:带有intellisense的内置C#/ VB.Net编辑器 – Roslyn,VSTA还是其他什么?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1001620.html