0

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

例如,

这句话是_ _ 一个字。

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

4

2 回答 2

1

如果你想用 C++ 来做,你可以看看Notepad++的源代码。这是一个围绕Scintilla编辑组件编写的文本编辑器。它支持自动完成/制表符完成、函数参数提示等功能。听起来你想做类似的事情,所以我会说查看 Notepad++ 的源代码将是一个不错的起点。

注意:正如上面一些评论中提到的,这是解决问题的一种方法。还有其他库,例如 Scintilla,以及其他执行此操作的方法。这只是我想到的第一个。

好的,这里有一些其他的想法。您可能会考虑使用Eclipse的文本编辑组件 (Java)。您还可以查看SharpDevelopMonoDevelop使用什么 (C#)。看看各种开源文本编辑器,看看他们是如何做到的。

于 2013-09-11T00:13:44.917 回答
1

我有一些开发文本编辑器的经验,想在这里分享一下。但是我的一直在使用 Java,但仍然可以帮助您做出决定。好吧,如果您正在为任何现有语言或新语言制作文本编辑器,您还没有真正说过。

我的文本编辑器用于定制语言。因此,我必须编写语言的语法,然后才能为此制作文本编辑器。为此,我使用Xtext了对于开发自定义语言非常有用的框架和类似编辑器的工具。它对以下方面有很好的支持

i) 语法高亮

ii) 带有内容辅助的下拉按钮

iii) 优秀的 java 集成

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

但是,如果您只为纯文本编辑器执行此操作,则可能有点矫枉过正!!!

Xtext 官方文档

于 2013-09-11T00:43:45.293 回答