SyntaxHighlighter
继承: Resource < RefCounted < Object
派生: CodeHighlighter, EditorSyntaxHighlighter
语法高亮器的基类。可以向 TextEdit 提供语法高亮数据。
描述
语法高亮器的基类。向 TextEdit 提供语法高亮数据。关联的 TextEdit 节点会根据需要调用 SyntaxHighlighter。
注意:不应在多个 TextEdit 节点间共享 SyntaxHighlighter 实例。
方法
void | _clear_highlighting_cache() virtual |
_get_line_syntax_highlighting(line: int) virtual const | |
void | _update_cache() virtual |
void | |
get_line_syntax_highlighting(line: int) | |
get_text_edit() const | |
void |
方法说明
void _clear_highlighting_cache() virtual 🔗
虚方法,覆盖后可以清空本地缓存。
Dictionary _get_line_syntax_highlighting(line: int) virtual const 🔗
虚方法,覆盖后可以返回语法高亮数据。
详情见 get_line_syntax_highlighting。
void _update_cache() virtual 🔗
虚方法,覆盖后可以更新本地缓存。
void clear_highlighting_cache() 🔗
清空所有缓存的语法高亮数据。
然后调用可覆盖的 _clear_highlighting_cache 方法。
Dictionary get_line_syntax_highlighting(line: int) 🔗
返回某一行的语法高亮数据。如果尚未缓存该行,则会调用 _get_line_syntax_highlighting 来计算相关数据。
返回的 Dictionary 是将列号映射到另一个 Dictionary。列号代表区域的开始位置,当前区域在遇到其他区域或行尾时结束。嵌套的 Dictionary 中包含该区域的数据,目前仅支持“color”字段。
示例返回:
var color_map = {
0: {
"color": Color(1, 0, 0)
},
5: {
"color": Color(0, 1, 0)
}
}
这样就会让 0-4 列为红色,让 5-行尾为绿色。
TextEdit get_text_edit() const 🔗
返回关联的 TextEdit 节点。
void update_cache() 🔗
清除然后更新 SyntaxHighlighter 缓存。为一个回调覆盖 _update_cache。
注意:当关联的 TextEdit 节点更新它自己的缓存时,该函数会被自动调用。