如何制作自定义文本编辑器[关闭]
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
【讨论】:
完美!这就是我一直在寻找的建议!我不会编写自定义语言,但它肯定比记事本更复杂。以上是关于如何制作自定义文本编辑器[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?
Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?