Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

SyntaxHighlighter

继承: Resource < RefCounted < Object

派生: CodeHighlighter, EditorSyntaxHighlighter

语法高亮器的基类。可以向 TextEdit 提供语法高亮数据。

描述

语法高亮器的基类。向 TextEdit 提供语法高亮数据。关联的 TextEdit 节点会根据需要调用 SyntaxHighlighter

注意:不应在多个 TextEdit 节点间共享 SyntaxHighlighter 实例。

方法

void

_clear_highlighting_cache() virtual

Dictionary

_get_line_syntax_highlighting(line: int) virtual const

void

_update_cache() virtual

void

clear_highlighting_cache()

Dictionary

get_line_syntax_highlighting(line: int)

TextEdit

get_text_edit() const

void

update_cache()


方法说明

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) 🔗

返回索引为 line 的行的语法高亮数据。如果尚未缓存该行,则会先调用 _get_line_syntax_highlighting() 来计算相关数据。

每个条目都是将列号映射到嵌套的 Dictionary。列号代表区域的开始位置,当前区域在遇到其他区域或行尾时结束。嵌套的 Dictionary 中包含该区域的数据,目前仅支持 color 字段。

示例:可能的返回值,表示第 0 列到第 4 列应当为红色,第 5 列至行尾应当为绿色:

{
    0: {
        "color": Color(1, 0, 0)
    },
    5: {
        "color": Color(0, 1, 0)
    }
}

TextEdit get_text_edit() const 🔗

返回关联的 TextEdit 节点。


void update_cache() 🔗

清除然后更新 SyntaxHighlighter 缓存。为一个回调覆盖 _update_cache()

注意:当关联的 TextEdit 节点更新它自己的缓存时,该函数会被自动调用。