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

返回某一行的语法高亮数据。如果尚未缓存该行,则会调用 _get_line_syntax_highlighting 来计算相关数据。

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

示例返回:

  1. var color_map = {
  2. 0: {
  3. "color": Color(1, 0, 0)
  4. },
  5. 5: {
  6. "color": Color(0, 1, 0)
  7. }
  8. }

这样就会让 0-4 列为红色,让 5-行尾为绿色。


TextEdit get_text_edit() const 🔗

返回关联的 TextEdit 节点。


void update_cache() 🔗

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

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