Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

SyntaxHighlighter

继承: Resource < RefCounted < Object

派生: CodeHighlighter, EditorSyntaxHighlighter

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

描述

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

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

方法

void

_clear_highlighting_cache ( ) virtual

Dictionary

_get_line_syntax_highlighting ( int line ) virtual const

void

_update_cache ( ) virtual

void

clear_highlighting_cache ( )

Dictionary

get_line_syntax_highlighting ( int line )

TextEdit

get_text_edit ( ) const

void

update_cache ( )


方法说明

void _clear_highlighting_cache ( ) virtual

虚方法,覆盖后可以清空本地缓存。


Dictionary _get_line_syntax_highlighting ( int line ) virtual const

虚方法,覆盖后可以返回语法高亮数据。

详情见 get_line_syntax_highlighting


void _update_cache ( ) virtual

虚方法,覆盖后可以更新本地缓存。


void clear_highlighting_cache ( )

清空所有缓存的语法高亮数据。

然后调用可覆盖的 _clear_highlighting_cache 方法。


Dictionary get_line_syntax_highlighting ( int line )

返回某一行的语法高亮数据。如果尚未缓存该行,则会调用 _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 节点更新它自己的缓存时,该函数会被自动调用。