如何制作自定义文本编辑器[关闭]

Posted

技术标签:

【中文标题】如何制作自定义文本编辑器[关闭]【英文标题】:How to make a custom text editor [closed] 【发布时间】:2013-09-11 00:06:17 【问题描述】:

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

例如,

这句话是__一个词。

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

【问题讨论】:

相当主观的问题,因为有很多不同的方法。 也是一个非常广泛的问题,仅从语言参考来看,更不用说问题本身了,一个几乎无法回答的问题。 这似乎是一个过于宽泛的问题,但对于 Java,您可能想从这里开始:Using Text Components。 这不是一个简单的任务。需要通过设计进行思考。你有没有编写过类似的东西? 我知道这是一个主观问题,我希望得到主观答案。我以前从未做过任何从头开始的文本编辑器,主要是 wpf 和 winfourms 【参考方案1】:

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

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

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

【讨论】:

有趣,我的首选语言是 C#,但我会筛选一下,看看它有多复杂【参考方案2】:

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

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

i) 语法高亮

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

iii) 出色的 java 集成

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

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

Xtext official documentation

【讨论】:

完美!这就是我一直在寻找的建议!我不会编写自定义语言,但它肯定比记事本更复杂。

以上是关于如何制作自定义文本编辑器[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义 Eclipse 的文本编辑器代码格式

Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?

Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?

如何在 Devexpress 控件的富文本编辑器中添加自定义邮件合并字段

二Qt定时器与文本编辑器制作《QT 入门到实战》

二Qt定时器与文本编辑器制作《QT 入门到实战》