8

我有一段时间没有使用 synEdit 了,但是今天我发现我需要一个好的编辑器来制作一个支持脚本的表单。当我去下载 synEdit 时(我的思绪已经被时间冻结为“确定的事情”),我发现原作者已经放弃了它。我知道 FreePascal 有一个 synEdit 版本——我听说那里“某处”有一个更新的 unicode 版本——但我究竟在哪里可以获得最新和最好的版本?

如果可能的话,我更喜欢 unicode 支持,但更重要的是支持动态样式(能够将标记添加到下划线关键字,有点像 Delphi 在访问刚刚键入的类的变量时所做的那样)。

4

4 回答 4

5

http://synedit.sourceforge.net有一个指向 Unicode 版本的链接。

于 2010-12-22T06:39:43.273 回答
4

SynEdit 比任何其他文本编辑器组件都要快得多。请参阅此处的比较基准

目前我正在为 Arduino 开发一个新的 IDE(官方的 IDE 缺少太多标准的 IDE 功能)来为 Arduino 社区做出贡献。由于我希望我的 IDE 在不依赖任何 VM 的情况下本机运行并且跨平台不是我的目标,所以我带着我的好朋友 Delphi 7 并搜索更新的 SynEdit VCL。有点令人失望的是它仍然没有非常重要的功能:代码折叠(您现在可以说是“标准代码编辑器功能”)。

但是经过一番搜索,我发现了一个基于 SynEdit 的后代项目,该项目具有代码折叠功能:Mystix(托管在 SourceForge)。你可以简单地用这个覆盖你以前的 SynEdit 源(没有新的 dpk 包要安装)。无论如何,它基于 SynEdit 2.0.1。

文档有点模糊(您必须彻底检查源代码才能了解如何正确使用它),但这里提示如何使用代码折叠功能:

SynEdit1.CodeFolding.FolderBarColor: = clDefault; 
SynEdit1.CodeFolding.HighlighterFoldRegions: = False; 
SynEdit1.CodeFolding.FoldRegions.Add(rtChar, False, False, True, '{', '}');
SynEdit1.CodeFolding.FoldRegions.Add(rtKeyword, False, False, True, '/*', '*/');
// and don't forget to initialize...
SynEdit1.InitCodeFolding;
// ... and enable it
SynEdit1.CodeFolding.Enabled: = True;

Mystix 在与 SynEdit (MPL) 相同的许可下发布。

于 2013-12-16T11:24:01.660 回答
1

我强烈推荐使用 Scintilla。它具有您正在寻找的所有功能。它比 SynEdit 更强大、更成熟。SynEdit 的发展在最后一个酵母中下降到几乎停滞不前。Scintilla 的唯一问题是没有人更新绑定到它的 Delphi 代码。SourceForge 项目不再处于活动状态。您可以在以下 URL 中找到 Delphi 代码:

用于 Scintilla和Delphi 组件的 Borland Delphi 控件包装器

后者包含最新的代码。更新它以添加 Scintilla 的最新功能并不难。

于 2010-12-22T12:33:10.660 回答
1

我不会使用当前答案中的链接,因为它最近没有更新,即使它仍然每周在 SourceForge 上获得大约 80 次下载。( https://sourceforge.net/projects/synedit/ )


GitHub 上有三个最近更新的版本:

有关简要历史,请参阅 DelphiPraxis 上的此线程: https ://en.delphipraxis.net/topic/3028-synedit-preferred-version/?do=findComment&comment=24291

于 2020-06-22T16:55:51.257 回答