如何制作自定义文本编辑器

时间:2013-09-11 00:06:18

标签: c# java c++ wpf winforms

如何制作自定义文本编辑器?我正在考虑一个类似于视觉工作室的编辑器,文本区域之外的其他内容可以出现在文本区域中,例如下拉菜单,按钮图像等。

例如,

这句话是 _ _一个字。

我需要能够点击“ _ _”并在其位置打开一个下拉菜单或窗口,就像visual studio允许您选择类的功能并让一些东西自动填充在为你。 据我所知,这在Windows窗体或wpf中无法实现。你会怎么做? 我有C#,C ++和Java知识,并希望将其作为本机应用程序。

2 个答案:

答案 0 :(得分:1)

如果您想在C ++中执行此操作,可以查看Notepad++的源代码。它是围绕Scintilla编辑组件编写的文本编辑器。它支持自动完成/制表完成,功能参数提示等功能。听起来你想要做类似的事情,所以我想看看Notepad ++的源代码将是一个很好的起点。

注意:如上面的一些评论所述,这是一种方法。还有像Scintilla这样的其他库,以及其他方法。这只是我想到的第一个。

好的,这是其他一些想法。您可以查看使用Eclipse的文本编辑组件(Java)。您还可以查看SharpDevelopMonoDevelop使用的内容(C#)。浏览各种开源文本编辑器,看看他们是如何做到的。

答案 1 :(得分:1)

我有一些开发文本编辑器的经验,并希望在此处分享相同内容。但是我的Java一直在用Java,但仍然可以帮助你做出决定。如果您正在为任何现有语言或新语言制作文本编辑器,那么您还没有真正说过。

我的文字编辑器是针对自定义语言的。因此,我必须编写语言的语法,然后才为此编写文本编辑器。为此,我使用了Xtext框架,这对于开发自定义语言和编辑器等工具非常有用。它对以下

有很好的支持

i)语法突出显示

ii)包含内容辅助的下拉按钮

iii)优秀的java集成

iv)优秀的IDE支持,因为它可以作为eclipse插件安装。

然而,如果你只是为纯文本编辑器做这件事,那可能是一种矫枉过正的行为! ! !

Xtext official documentation