如何在 Scintilla 中隐藏换行符?

Posted

技术标签:

【中文标题】如何在 Scintilla 中隐藏换行符?【英文标题】:How to hide new-line characters in Scintilla? 【发布时间】:2012-11-10 14:41:29 【问题描述】:

我正在为基于 Scintilla 的编辑器创建一个深色主题。我已经成功地定义了所有我想要的样式,除了行尾。换句话说,尽管我的编辑器中的所有文本都显示在深色背景上,但在每一行的末尾都有一个白色填充的小矩形。

我相信这个矩形与换行符有关,因为即使是空行也有它。但没有显示其他控制字符。

那么,我怎样才能摆脱这个白色矩形呢?

我尝试将 ControlCharSymbol 更改为其他值(低于或高于 0x20)但没有结果。

注意:我刚刚注意到,如果将空格和制表符设置为不可见,也会出现同样的情况。如果它们设置为可见,则 Scintilla 将它们显示为“.”。和 '--->' 使用我定义的颜色。

【问题讨论】:

【参考方案1】:

如果您已经为词法分析器定义的所有样式设置了背景,您也可以尝试将setting the background 设置为STYLE_DEFAULT。

如果这不起作用,可以使用SCI_SETWHITESPACEBACK 为所有空白全局设置背景。

【讨论】:

SCI_SETWHITESPACEBACK (与具有相同默认背景值的 SCI_SETWHITESPACEFORE 一起)用于隐藏空白。但是每行末尾的小矩形仍然可见。 @Alex。嗯,好奇。我根本无法重现。你用的是什么词法分析器?如果您使用不同的 eol 模式,您会得到相同的结果吗? 你是对的。使用 STYLE_DEFAULT 后跟 SCI_STYLECLEARALL 将所有样式设置为默认值。然后我只需要更改我真正想要的样式。谢谢!

以上是关于如何在 Scintilla 中隐藏换行符?的主要内容,如果未能解决你的问题,请参考以下文章

如何调用/包装 Scintilla?怀疑

如何在 Scintilla.net 中突出显示对括号?

如何使用 Scintilla 启动项目?

如何在 Windows 窗体 C# 中为文本框设置 Scintilla

如何在 XCode 3.2.5 项目中包含 Scintilla?

如何在 Scintilla 中设置边距蒙版?