如何突出显示闪烁中的文本?

2024-05-15 19:13:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Scintilla编写编辑器。

我已经在使用lexer进行自动语法突出显示,但现在我想标记搜索结果。如果我只想标记一个点击,我可以在那里设置选择,但是,我想标记(例如,黄色背景)所有点击。

我是用Perl编写的,但如果您有其他语言的建议,那也很酷。


Tags: 标记语言语法编辑器建议perl背景lexer
3条回答

“示例”编辑器scite使用书签功能为与搜索结果匹配的所有行添加书签。

我用Indicators来突出显示搜索结果。

你读过Markers reference in Scintilla doc吗? 这个引用可能有点晦涩,所以我建议您也看看SciTE的源代码。这个文本编辑器最初是闪烁体的一个试验台。它已经发展成为一个成熟的编辑器,但是它仍然是一个很好的实现参考。

在我们的特殊情况下,“查找”对话框中有一个“全部标记”按钮。您可以在SciTEBase::MarkAll()方法中找到它的实现。此方法只循环搜索结果(直到循环第一个搜索结果(如果有的话))并在找到的行上放置书签(还可以选择在找到的项上设置指示器)。 找到的行是使用SCI-LINEFROMPOSITION(posFound)获得的,书签只是对SCI-MARKERADD(lineno,markerBookmark)的调用。 请注意,标记可以是页边距中的符号,或者如果不与页边距关联,它将突出显示整行。

哦。

相关问题 更多 >