关于非常简单,可分发的文本编辑器,具有可自定义的语法突出显示和可能的单词完成:非常简单,可分发的文本编辑器,具有可自定义的语法突出显示和可能完成单词 – 没有别

Very simple, distributable text editor with customizable syntax highlighting and maybe word completion - nothing else

我在找一个只突出显示语法的编辑器,而不是IDE。单词完成对于我指定的关键字也很好,但是我可以放弃这个特性。它只需要与Windows兼容。

情况是我有一种非常狭窄的特定于领域的语言,它只有大约25个关键字;它甚至没有条件。我希望突出显示关键字,以便用户知道他们何时正确地编写了关键字。为了确保他们不需要特别记住每一个关键词,完成单词是很好的。

我假设用户拥有典型祖辈的计算机技能——我很容易在vim和pspad中为这个DSL生成语法文件,但我觉得这些功能太多了,无法"使用"给目标受众。记事本的功能(加上颜色)就足够了。

我也愿意从头开始编写一个简单的编辑器,如果有一个库已经完成了我在这里解释过的大部分工作——也就是说,我只是告诉它用什么颜色突出显示,可能使用正则表达式。


更新:我已经看了scite一点——它非常像我正在寻找的,只是创建新的语法文件(属性文件)变得相当麻烦。我的语法相当简单:一个简短的示例脚本可能具有以下形式:

1
2
3
4
CommandA
CommandB Num1 Num2

CommandC

它不太适合Python或基本语言,但我也不打算为它编写lexer。但是,scite的简单性和使用该文件运行外部程序的能力是两个要点。

记事本++也很不错——我觉得它的功能太全面了,不适合预期的用途,但这本身并不太糟糕。我已经为它设置了一个语法文件,但我有几个问题甚至不应该出现。例如,我为数字样式选择了一种颜色。如果我把3号放进去,它就会显示出来。如果我输入3.0,.0部分是默认颜色,而不是数字颜色。如果我使用0x80,那么只有第一个零是彩色的,更不用说X80了;所以当然,0xFF也不是彩色的。另外,#是我的行注释字符。如果我有这样一条线

1
# foo bar

整条线都是蓝色的,这是合适的。但是如果没有空间(#foo bar),那么整条线都是黑色的。我最后一个抱怨是,自动完成似乎只在文件中使用过的单词,而不是尚未使用的关键字。

这里的语法配置是否遗漏了一些明显的内容?我在搜索谷歌时运气不好,因为我认为在记事本+语法方面应该是显而易见的答案。


使用记事本Plus…带有语言插件..它从文本文件中读取关键字


使用scintila库,如scite编辑器所示。它有一个用于自定义语法突出显示和自动完成的系统。

您可能能够使用scite,或者您可以很容易地修改它,或者为scintilla编辑器组件编写自己的shell。

它带有商业友好的开源许可证。


记事本++满足您的所有需求,等等。

从链接:

Notepad++ is a free (as in"free speech" and also as in"free beer")

它还具有自动完成功能和用户定义的语法突出显示功能。


在阅读了维基百科关于文本编辑器的文章之后,我发现程序员的记事本最适合我的需要。关键字完成仅基于定义的关键字;语法文件设置简单;默认情况下,我可以禁用"复杂"功能,将其转换为我需要的功能。


Crimsoneditor和Jedit工作得很好