首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内置C#/VB.Net编辑器,带有intellisense - Roslyn、VSTA或其他?

内置C#/VB.Net编辑器,带有intellisense - Roslyn、VSTA或其他?
EN

Stack Overflow用户
提问于 2012-10-10 19:16:47
回答 3查看 3.1K关注 0票数 8

我需要在我的应用程序中提供脚本功能,允许客户使用我们的对象模型扩展其功能。我希望提供某种集成的C#/VB.Net编辑器与智能感知,但在研究了像AvalonEdit和ScintillaNet这样的产品后,它们似乎并没有提供真正的代码完成功能,而仅仅是一个应用程序接口,您可以在其中提供您自己的项目列表,以显示在弹出的自动完成列表中。

因此,我想知道Roslyn是否提供了这样的功能?从我遇到的教程和示例来看,Roslyn似乎真的只是一个编译器服务。

作为最后的手段,客户可以使用像VS Express这样的东西,但集成的编辑器显然更好一些。

(我还遇到了Visual Studio Tools for Applications,听起来很有前途;但是在线资源已经有几年的历史了,文档/教程并不存在,所以我在这篇文章中一无所获)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-14 11:45:40

我肯定不是这方面的专家。但既然你还没有收到任何其他回复,我就试试吧。

我认为简短的答案是“是”。

查看AvalonEdit和SharpDevelop中的代码,代码完成似乎是最困难的部分之一。本质上,您必须编写一个编译器(或解析器,无论如何)来确定哪些项应该在完成列表中。看来Roslyn提供了构建完成列表的工具。在旧版本中,这些工具与VS编辑器捆绑在一起,但我在最新版本中看到声明说它们是独立的。如果是这样的话,这些工具在实现代码完成方面将非常有用。

我真的根本没有研究过细节,但我打算这样做,因为我和你有一些相同的目标,而Roslyn看起来会很有帮助(根据我目前所知,这并不是很多)。

票数 3
EN

Stack Overflow用户

发布于 2012-10-14 16:23:49

您提出了一个非常有趣的声明:“在研究了像AvalonEdit、SharpDevelop和ScintillaNet这样的产品之后,它们似乎并没有提供真正的代码完成智能感知”。SharpDevelop是一个完整的集成开发环境,为什么你不能找到“真正的”代码完成智能感知呢?你必须提供一些证据,否则你的陈述是无效的。

你想要实现的目标只能通过两个重要的组件来实现,

  • 一种语言解析器,使用它可以获取用于代码完成的上下文和元素。这就是Roslyn提供的,但Roslyn还不够成熟,无法解析所有现有的C#语法。SharpDevelop (和MonoDevelop一样)使用NRefactory,它服务于相同的目标。
  • 支持语法突出显示的UI元素。这可以通过基于您选择的UI框架的AvalonEdit或ScintillaNet来实现。

正如@Mystere Man指出的那样,Visual Studio Shell可能会为您提供一些帮助。但就我个人而言,我对此知之甚少。

票数 2
EN

Stack Overflow用户

发布于 2012-12-18 09:03:26

我非常努力地尝试使用其中的一个内置组件,但最终还是自己实现了一个。在探索了一天的RichTextBox应用程序接口之后,您可以轻松地构建此支持。只需使用PreviewKeyDown/Up,确保使用undo支持等一批工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12818041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档