我需要我的应用程序内提供的脚本功能,允许客户在使用我们的对象模型,以扩展其功能。 我希望能提供某种形式的集成C#/ VB.Net编辑与智能感知,但看着产品,如AvalonEdit和ScintillaNet后,他们似乎并没有提供真正的代码完成,只是一个API,你可以提供自己的列表项目出现在弹出自动完成列表。
因此,我在想,如果罗斯林提供任何这样的功能? 从教程和例子我已经遇到,看来罗斯林真的只是一个编译器服务。
作为最后手段的客户可以使用类似VS快,但综合编辑显然是更好一点。
(我也碰到过Visual Studio工具的应用,这听起来前途,但网上资源是几年前的,和文档/教程是不存在的,所以我画这一个空白)。
我ceretainly没有在这一领域的专家。 但由于您没有收到任何其他答复,我就带了一枪。
我想简单的答案是“是”。
综观AvalonEdit和SharpDevelop的代码,看来代码完成是最困难的部分之一。 从本质上讲,你必须写一个编译器(或分析器,反正)找出项目应完成清单上的东西。 看来,罗斯林提供的工具构建完成列表。 在旧版本中,这些工具被拴在VS编辑器,但我所看到的声明说,他们是独立的最新版本。 如果是这样,这些工具将是在执行代码完成是非常有用的。
我还没有真正调查的所有细节,但我打算,因为我有一些相同的目标,你和罗斯林看起来将是有益的(根据我所知道的,到目前为止,这是不是很)。
你提出了一个非常有趣的声称“看产品,如AvalonEdit,SharpDevelop的和ScintillaNet后,他们似乎并没有提供真正的代码完成智能感知”。 SharpDevelop的是一个完整的IDE,为什么不找个“真正的”代码完成智能感知? 你将不得不提供一些证据,或该声明是无效的。
要实现只能用组件的两个重要部件来实现什么,
Visual Studio的外壳可能会提供你一些帮助,因为@Mystere人指出。 但我个人不很了解。
我想真的很难使用这些内置的组件之一,但最终实现一个自己。 一天的游览,RichTextBox的API后,您可以轻松地构建这种支持。 只是PreviewKeyDown /向上打,确保了一批与撤消支持和这样的工作发挥。
文章来源: Built-in C#/VB.Net editor with intellisense - Roslyn, VSTA, or something else?