TextEdit

继承: Control < Item < Object

派生: CodeEdit

多行文本编辑器。

描述

多行文本编辑器。它还具有有限的编辑代码功能,例如语法高亮支持。有关编辑代码的更高级工具,请参阅CodeEdit

注意:大多数视口、插入符号和编辑方法包含caret_multiple支持的caret_index参数。参数应为以下之一:-1表示所有插入符号,0表示主插入符号,或大于0表示辅助插入符号,按创建顺序排列。

注意:按住Alt时,垂直滚轮的滚动速度将是正常速度的5倍。这也适用于i3D脚本编辑器。

属性

AutowrapMode

autowrap_mode

3

bool

caret_blink

false

float

caret_blink_interval

0.65

bool

caret_draw_when_editable_disabled

false

bool

caret_mid_grapheme

false

bool

caret_move_on_right_click

true

bool

caret_multiple

true

CaretType

caret_type

0

bool

clip_contents

true (overrides Control)

bool

context_menu_enabled

true

String

custom_word_separators

""

bool

deselect_on_focus_loss_enabled

true

bool

drag_and_drop_selection_enabled

true

bool

draw_control_chars

false

bool

draw_spaces

false

bool

draw_tabs

false

bool

editable

true

bool

emoji_menu_enabled

true

bool

empty_selection_clipboard_enabled

true

FocusMode

focus_mode

2 (overrides Control)

bool

highlight_all_occurrences

false

bool

highlight_current_line

false

bool

indent_wrapped_lines

false

String

language

""

bool

middle_mouse_paste_enabled

true

bool

minimap_draw

false

int

minimap_width

80

CursorShape

mouse_default_cursor_shape

1 (overrides Control)

String

placeholder_text

""

bool

scroll_fit_content_height

false

bool

scroll_fit_content_width

false

int

scroll_horizontal

0

bool

scroll_past_end_of_file

false

bool

scroll_smooth

false

float

scroll_v_scroll_speed

80.0

float

scroll_vertical

0.0

bool

selecting_enabled

true

bool

shortcut_keys_enabled

true

StructuredTextParser

structured_text_bidi_override

0

Array

structured_text_bidi_override_options

[]

SyntaxHighlighter

syntax_highlighter

String

text

""

TextDirection

text_direction

0

bool

use_custom_word_separators

false

bool

use_default_word_separators

true

bool

virtual_keyboard_enabled

true

LineWrappingMode

wrap_mode

0

方法

void

_backspace(caret_index: int) virtual

void

_copy(caret_index: int) virtual

void

_cut(caret_index: int) virtual

void

_handle_unicode_input(unicode_char: int, caret_index: int) virtual

void

_paste(caret_index: int) virtual

void

_paste_primary_clipboard(caret_index: int) virtual

int

add_caret(line: int, column: int)

void

add_caret_at_carets(below: bool)

void

add_gutter(at: int = -1)

void

add_selection_for_next_occurrence()

void

adjust_carets_after_edit(caret: int, from_line: int, from_col: int, to_line: int, to_col: int)

void

adjust_viewport_to_caret(caret_index: int = 0)

void

apply_ime()

void

backspace(caret_index: int = -1)

void

begin_complex_operation()

void

begin_multicaret_edit()

void

cancel_ime()

void

center_viewport_to_caret(caret_index: int = 0)

void

clear()

void

clear_undo_history()

void

collapse_carets(from_line: int, from_column: int, to_line: int, to_column: int, inclusive: bool = false)

void

copy(caret_index: int = -1)

void

cut(caret_index: int = -1)

void

delete_selection(caret_index: int = -1)

void

deselect(caret_index: int = -1)

void

end_action()

void

end_complex_operation()

void

end_multicaret_edit()

int

get_caret_column(caret_index: int = 0) const

int

get_caret_count() const

Vector2

get_caret_draw_pos(caret_index: int = 0) const

PackedInt32Array

get_caret_index_edit_order()

int

get_caret_line(caret_index: int = 0) const

int

get_caret_wrap_index(caret_index: int = 0) const

int

get_first_non_whitespace_column(line: int) const

int

get_first_visible_line() const

int

get_gutter_count() const

String

get_gutter_name(gutter: int) const

GutterType

get_gutter_type(gutter: int) const

int

get_gutter_width(gutter: int) const

HScrollBar

get_h_scroll_bar() const

int

get_indent_level(line: int) const

int

get_last_full_visible_line() const

int

get_last_full_visible_line_wrap_index() const

int

get_last_unhidden_line() const

String

get_line(line: int) const

Color

get_line_background_color(line: int) const

Vector2i

get_line_column_at_pos(position: Vector2i, clamp_line: bool = true, clamp_column: bool = true) const

int

get_line_count() const

Texture2D

get_line_gutter_icon(line: int, gutter: int) const

Color

get_line_gutter_item_color(line: int, gutter: int) const

Variant

get_line_gutter_metadata(line: int, gutter: int) const

String

get_line_gutter_text(line: int, gutter: int) const

int

get_line_height() const

Array[Vector2i]

get_line_ranges_from_carets(only_selections: bool = false, merge_adjacent: bool = true) const

int

get_line_width(line: int, wrap_index: int = -1) const

String

get_line_with_ime(line: int) const

int

get_line_wrap_count(line: int) const

int

get_line_wrap_index_at_column(line: int, column: int) const

PackedStringArray

get_line_wrapped_text(line: int) const

Vector2

get_local_mouse_pos() const

PopupMenu

get_menu() const

int

get_minimap_line_at_pos(position: Vector2i) const

int

get_minimap_visible_lines() const

Vector2i

get_next_visible_line_index_offset_from(line: int, wrap_index: int, visible_amount: int) const

int

get_next_visible_line_offset_from(line: int, visible_amount: int) const

Vector2i

get_pos_at_line_column(line: int, column: int) const

Rect2i

get_rect_at_line_column(line: int, column: int) const

int

get_saved_version() const

float

get_scroll_pos_for_line(line: int, wrap_index: int = 0) const

String

get_selected_text(caret_index: int = -1)

int

get_selection_at_line_column(line: int, column: int, include_edges: bool = true, only_selections: bool = true) const

int

get_selection_column(caret_index: int = 0) const

int

get_selection_from_column(caret_index: int = 0) const

int

get_selection_from_line(caret_index: int = 0) const

int

get_selection_line(caret_index: int = 0) const

SelectionMode

get_selection_mode() const

int

get_selection_origin_column(caret_index: int = 0) const

int

get_selection_origin_line(caret_index: int = 0) const

int

get_selection_to_column(caret_index: int = 0) const

int

get_selection_to_line(caret_index: int = 0) const

PackedInt32Array

get_sorted_carets(include_ignored_carets: bool = false) const

int

get_tab_size() const

int

get_total_gutter_width() const

int

get_total_visible_line_count() const

VScrollBar

get_v_scroll_bar() const

int

get_version() const

int

get_visible_line_count() const

int

get_visible_line_count_in_range(from_line: int, to_line: int) const

String

get_word_at_pos(position: Vector2) const

String

get_word_under_caret(caret_index: int = -1) const

bool

has_ime_text() const

bool

has_redo() const

bool

has_selection(caret_index: int = -1) const

bool

has_undo() const

void

insert_line_at(line: int, text: String)

void

insert_text(text: String, line: int, column: int, before_selection_begin: bool = true, before_selection_end: bool = false)

void

insert_text_at_caret(text: String, caret_index: int = -1)

bool

is_caret_after_selection_origin(caret_index: int = 0) const

bool

is_caret_visible(caret_index: int = 0) const

bool

is_dragging_cursor() const

bool

is_gutter_clickable(gutter: int) const

bool

is_gutter_drawn(gutter: int) const

bool

is_gutter_overwritable(gutter: int) const

bool

is_in_mulitcaret_edit() const

bool

is_line_gutter_clickable(line: int, gutter: int) const

bool

is_line_wrapped(line: int) const

bool

is_menu_visible() const

bool

is_mouse_over_selection(edges: bool, caret_index: int = -1) const

bool

is_overtype_mode_enabled() const

void

menu_option(option: int)

void

merge_gutters(from_line: int, to_line: int)

void

merge_overlapping_carets()

bool

multicaret_edit_ignore_caret(caret_index: int) const

void

paste(caret_index: int = -1)

void

paste_primary_clipboard(caret_index: int = -1)

void

redo()

void

remove_caret(caret: int)

void

remove_gutter(gutter: int)

void

remove_line_at(line: int, move_carets_down: bool = true)

void

remove_secondary_carets()

void

remove_text(from_line: int, from_column: int, to_line: int, to_column: int)

Vector2i

search(text: String, flags: int, from_line: int, from_column: int) const

void

select(origin_line: int, origin_column: int, caret_line: int, caret_column: int, caret_index: int = 0)

void

select_all()

void

select_word_under_caret(caret_index: int = -1)

void

set_caret_column(column: int, adjust_viewport: bool = true, caret_index: int = 0)

void

set_caret_line(line: int, adjust_viewport: bool = true, can_be_hidden: bool = true, wrap_index: int = 0, caret_index: int = 0)

void

set_gutter_clickable(gutter: int, clickable: bool)

void

set_gutter_custom_draw(column: int, draw_callback: Callable)

void

set_gutter_draw(gutter: int, draw: bool)

void

set_gutter_name(gutter: int, name: String)

void

set_gutter_overwritable(gutter: int, overwritable: bool)

void

set_gutter_type(gutter: int, type: GutterType)

void

set_gutter_width(gutter: int, width: int)

void

set_line(line: int, new_text: String)

void

set_line_as_center_visible(line: int, wrap_index: int = 0)

void

set_line_as_first_visible(line: int, wrap_index: int = 0)

void

set_line_as_last_visible(line: int, wrap_index: int = 0)

void

set_line_background_color(line: int, color: Color)

void

set_line_gutter_clickable(line: int, gutter: int, clickable: bool)

void

set_line_gutter_icon(line: int, gutter: int, icon: Texture2D)

void

set_line_gutter_item_color(line: int, gutter: int, color: Color)

void

set_line_gutter_metadata(line: int, gutter: int, metadata: Variant)

void

set_line_gutter_text(line: int, gutter: int, text: String)

void

set_overtype_mode_enabled(enabled: bool)

void

set_search_flags(flags: int)

void

set_search_text(search_text: String)

void

set_selection_mode(mode: SelectionMode)

void

set_selection_origin_column(column: int, caret_index: int = 0)

void

set_selection_origin_line(line: int, can_be_hidden: bool = true, wrap_index: int = -1, caret_index: int = 0)

void

set_tab_size(size: int)

void

set_tooltip_request_func(callback: Callable)

void

skip_selection_for_next_occurrence()

void

start_action(action: EditAction)

void

swap_lines(from_line: int, to_line: int)

void

tag_saved_version()

void

undo()

主题属性

Color

background_color

Color(0, 0, 0, 0)

Color

caret_background_color

Color(0, 0, 0, 1)

Color

caret_color

Color(0.875, 0.875, 0.875, 1)

Color

current_line_color

Color(0.25, 0.25, 0.26, 0.8)

Color

font_color

Color(0.875, 0.875, 0.875, 1)

Color

font_outline_color

Color(0, 0, 0, 1)

Color

font_placeholder_color

Color(0.875, 0.875, 0.875, 0.6)

Color

font_readonly_color

Color(0.875, 0.875, 0.875, 0.5)

Color

font_selected_color

Color(0, 0, 0, 0)

Color

search_result_border_color

Color(0.3, 0.3, 0.3, 0.4)

Color

search_result_color

Color(0.3, 0.3, 0.3, 1)

Color

selection_color

Color(0.5, 0.5, 0.5, 1)

Color

word_highlighted_color

Color(0.5, 0.5, 0.5, 0.25)

int

caret_width

1

int

line_spacing

4

int

outline_size

0

Font

font

int

font_size

Texture2D

space

Texture2D

tab

StyleBox

focus

StyleBox

normal

StyleBox

read_only


信号

caret_changed() 🔗

当任何插入符号改变位置时发出。


gutter_added() 🔗

添加排水沟时发出。


gutter_clicked(line: int, gutter: int) 🔗

单击排水沟时发出。


gutter_removed() 🔗

清除排水沟时排放。


lines_edited_from(from_line: int, to_line: int) 🔗

文本更改时立即发出。

添加文本时from_line将小于to_line。删除时to_line将小于from_line


text_changed() 🔗

文本更改时发出。


text_set() 🔗

调用clear()或设置text时发出。


枚举

enum MenuItems: 🔗

MenuItems MENU_CUT = 0

剪切(复制并清除)选定的文本。

MenuItems MENU_COPY = 1

复制选定的文本。

MenuItems MENU_PASTE = 2

将剪贴板文本粘贴到选定文本上(或光标位置)。

MenuItems MENU_CLEAR = 3

擦除整个TextEdit文本。

MenuItems MENU_SELECT_ALL = 4

选择整个TextEdit文本。

MenuItems MENU_UNDO = 5

撤消上一个操作。

MenuItems MENU_REDO = 6

重做上一个操作。

MenuItems MENU_SUBMENU_TEXT_DIR = 7

“文本写作方向”子菜单的ID。

MenuItems MENU_DIR_INHERITED = 8

将文本方向设置为继承。

MenuItems MENU_DIR_AUTO = 9

将文本方向设置为自动。

MenuItems MENU_DIR_LTR = 10

将文本方向设置为从左到右。

MenuItems MENU_DIR_RTL = 11

将文本方向设置为从右到左。

MenuItems MENU_DISPLAY_UCC = 12

切换控制字符显示。

MenuItems MENU_SUBMENU_INSERT_UCC = 13

“插入控制字符”子菜单的ID。

MenuItems MENU_INSERT_LRM = 14

插入从左到右的标记(LRM)字符。

MenuItems MENU_INSERT_RLM = 15

插入从右到左的标记(RLM)字符。

MenuItems MENU_INSERT_LRE = 16

插入从左到右嵌入(LRE)字符的开头。

MenuItems MENU_INSERT_RLE = 17

插入从右到左嵌入(RLE)字符的开头。

MenuItems MENU_INSERT_LRO = 18

插入从左到右覆盖(LRO)字符的开头。

MenuItems MENU_INSERT_RLO = 19

插入从右到左覆盖(RLO)字符的开头。

MenuItems MENU_INSERT_PDF = 20

插入弹出方向格式(PDF)字符。

MenuItems MENU_INSERT_ALM = 21

插入阿拉伯字母标记(ALM)字符。

MenuItems MENU_INSERT_LRI = 22

插入从左到右的隔离(LRI)字符。

MenuItems MENU_INSERT_RLI = 23

插入从右到左的隔离(RLI)字符。

MenuItems MENU_INSERT_FSI = 24

插入第一个强隔离(FSI)字符。

MenuItems MENU_INSERT_PDI = 25

插入弹出方向隔离(PDI)字符。

MenuItems MENU_INSERT_ZWJ = 26

插入零宽度连接器(ZWJ)字符。

MenuItems MENU_INSERT_ZWNJ = 27

插入零宽度非连接器(ZWNJ)字符。

MenuItems MENU_INSERT_WJ = 28

插入单词连接器(WJ)字符。

MenuItems MENU_INSERT_SHY = 29

插入软连字符(SHY)字符。

MenuItems MENU_EMOJI_AND_SYMBOL = 30

打开系统表情符号和符号选择器。

MenuItems MENU_MAX = 31

表示MenuItems枚举的大小。


enum EditAction: 🔗

EditAction ACTION_NONE = 0

没有当前的行动。

EditAction ACTION_TYPING = 1

打字动作。

EditAction ACTION_BACKSPACE = 2

向后删除操作。

EditAction ACTION_DELETE = 3

向前删除操作。


enum SearchFlags: 🔗

SearchFlags SEARCH_MATCH_CASE = 1

搜索时匹配大小写。

SearchFlags SEARCH_WHOLE_WORDS = 2

搜索时匹配整个单词。

SearchFlags SEARCH_BACKWARDS = 4

从头到尾搜索。


enum CaretType: 🔗

CaretType CARET_TYPE_LINE = 0

垂直线插入符号。

CaretType CARET_TYPE_BLOCK = 1

块插入符号。


enum SelectionMode: 🔗

SelectionMode SELECTION_MODE_NONE = 0

未选择。

SelectionMode SELECTION_MODE_SHIFT = 1

选择shift被按下。

SelectionMode SELECTION_MODE_POINTER = 2

选择单个字符,就像用户单击一样。

SelectionMode SELECTION_MODE_WORD = 3

选择整个单词,就像用户双击一样。

SelectionMode SELECTION_MODE_LINE = 4

选择整行,就像用户三次单击一样。


enum LineWrappingMode: 🔗

LineWrappingMode LINE_WRAPPING_NONE = 0

行换行被禁用。

LineWrappingMode LINE_WRAPPING_BOUNDARY = 1

换行发生在控件边界,超出了通常可见的范围。


enum GutterType: 🔗

GutterType GUTTER_TYPE_STRING = 0

当使用set_gutter_type()将gutter设置为字符串时,它用于包含通过set_line_gutter_text()方法设置的文本。

GutterType GUTTER_TYPE_ICON = 1

当使用set_gutter_type()将排水沟设置为图标时,它用于包含通过set_line_gutter_icon()方法设置的图标。

GutterType GUTTER_TYPE_CUSTOM = 2

当使用set_gutter_type()将gutter设置为自定义时,它用于包含由通过set_gutter_custom_draw()方法设置的回调方法控制的自定义视觉对象。


属性说明

AutowrapMode autowrap_mode = 3 🔗

如果wrap_mode设置为LINE_WRAPPING_BOUNDARY,则设置文本换行模式。要查看每个模式的行为方式,请参阅AutowrapMode


  • void set_caret_blink_enabled(value: bool)

  • bool is_caret_blink_enabled()

如果true,则使插入符号闪烁。


  • void set_caret_blink_interval(value: float)

  • float get_caret_blink_interval()

插入符号闪烁的时间间隔(以秒为单位)。


bool caret_draw_when_editable_disabled = false 🔗

  • void set_draw_caret_when_editable_disabled(value: bool)

  • bool is_drawing_caret_when_editable_disabled()

如果true,则禁用editable时插入符号将可见。


bool caret_mid_grapheme = false 🔗

  • void set_caret_mid_grapheme_enabled(value: bool)

  • bool is_caret_mid_grapheme_enabled()

允许移动插入符号,选择和删除单个复合字符组件。

注意:Backspace始终删除单个复合字符组件。


bool caret_move_on_right_click = true 🔗

  • void set_move_caret_on_right_click_enabled(value: bool)

  • bool is_move_caret_on_right_click_enabled()

如果true,则在显示上下文菜单之前右键单击鼠标位置的插入符号。

如果false,则上下文菜单忽略鼠标位置。


bool caret_multiple = true 🔗

  • void set_multiple_carets_enabled(value: bool)

  • bool is_multiple_carets_enabled()

如果true,则允许多个插入符号。左键单击Alt会添加一个新的插入符号。请参阅add_caret()get_caret_count()


CaretType caret_type = 0 🔗

设置要绘制的插入符号类型。


bool context_menu_enabled = true 🔗

  • void set_context_menu_enabled(value: bool)

  • bool is_context_menu_enabled()

如果true,右键单击将显示上下文菜单。


String custom_word_separators = "" 🔗

  • void set_custom_word_separators(value: String)

  • String get_custom_word_separators()

如果use_custom_word_separatorstrue,则应考虑作为单词分隔符的字符。应在不分隔的情况下定义字符,例如#_!


bool deselect_on_focus_loss_enabled = true 🔗

  • void set_deselect_on_focus_loss_enabled(value: bool)

  • bool is_deselect_on_focus_loss_enabled()

如果true,则当焦点丢失时,所选文本将被取消选择。


bool drag_and_drop_selection_enabled = true 🔗

  • void set_drag_and_drop_selection_enabled(value: bool)

  • bool is_drag_and_drop_selection_enabled()

如果true,则允许拖放选定的文本。文本仍然可以从其他来源删除。


bool draw_control_chars = false 🔗

  • void set_draw_control_chars(value: bool)

  • bool get_draw_control_chars()

如果true,则显示控制字符。


bool draw_spaces = false 🔗

  • void set_draw_spaces(value: bool)

  • bool is_drawing_spaces()

如果true,则“空格”字符将具有可见表示。


bool draw_tabs = false 🔗

  • void set_draw_tabs(value: bool)

  • bool is_drawing_tabs()

如果true,则“tab”字符将具有可见表示。


bool editable = true 🔗

  • void set_editable(value: bool)

  • bool is_editable()

如果false,则无法修改现有文本并且无法添加新文本。


bool emoji_menu_enabled = true 🔗

  • void set_emoji_menu_enabled(value: bool)

  • bool is_emoji_menu_enabled()

如果true,则启用“表情符号和符号”菜单。


bool empty_selection_clipboard_enabled = true 🔗

  • void set_empty_selection_clipboard_enabled(value: bool)

  • bool is_empty_selection_clipboard_enabled()

如果true,则对所有带有插入符号的行执行不带选择的复制或剪切。否则,复制和剪切需要选择。


bool highlight_all_occurrences = false 🔗

  • void set_highlight_all_occurrences(value: bool)

  • bool is_highlight_all_occurrences_enabled()

如果true,则所选文本的所有出现都将突出显示。


bool highlight_current_line = false 🔗

  • void set_highlight_current_line(value: bool)

  • bool is_highlight_current_line_enabled()

如果true,则突出显示包含光标的行。


bool indent_wrapped_lines = false 🔗

  • void set_indent_wrapped_lines(value: bool)

  • bool is_indent_wrapped_lines()

如果true,则所有换行的缩进量与未换行的缩进量相同。


String language = "" 🔗

用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。


bool middle_mouse_paste_enabled = true 🔗

  • void set_middle_mouse_paste_enabled(value: bool)

  • bool is_middle_mouse_paste_enabled()

如果false,使用鼠标中键粘贴剪贴板将被禁用。

注意:此方法仅在Linux实现。


bool minimap_draw = false 🔗

  • void set_draw_minimap(value: bool)

  • bool is_drawing_minimap()

如果true,则会显示一个小地图,提供源代码的大纲。小地图使用固定宽度的文本大小。


int minimap_width = 80 🔗

  • void set_minimap_width(value: int)

  • int get_minimap_width()

小地图的宽度(以像素为单位)。


String placeholder_text = "" 🔗

  • void set_placeholder(value: String)

  • String get_placeholder()

TextEdit为空时显示的文本。它是而不是TextEdit的默认值(参见text)。


bool scroll_fit_content_height = false 🔗

  • void set_fit_content_height_enabled(value: bool)

  • bool is_fit_content_height_enabled()

如果trueTextEdit将禁用垂直滚动并使最小高度适合可见行数。当此属性和scroll_fit_content_width都是true时,不会显示滚动条。


bool scroll_fit_content_width = false 🔗

  • void set_fit_content_width_enabled(value: bool)

  • bool is_fit_content_width_enabled()

如果trueTextEdit将禁用水平滚动并将最小宽度适合文本中最宽的行。当此属性和scroll_fit_content_height都是true时,不会显示滚动条。


int scroll_horizontal = 0 🔗

  • void set_h_scroll(value: int)

  • int get_h_scroll()

如果有水平滚动条,则确定当前水平滚动值(以像素为单位)。


bool scroll_past_end_of_file = false 🔗

  • void set_scroll_past_end_of_file_enabled(value: bool)

  • bool is_scroll_past_end_of_file_enabled()

允许滚动最后一行进入“虚拟”空间。


bool scroll_smooth = false 🔗

  • void set_smooth_scroll_enabled(value: bool)

  • bool is_smooth_scroll_enabled()

平滑地滚动文本,而不是跳转到下一个位置。


float scroll_v_scroll_speed = 80.0 🔗

  • void set_v_scroll_speed(value: float)

  • float get_v_scroll_speed()

使用小地图或启用scroll_smooth时设置滚动速度。


float scroll_vertical = 0.0 🔗

  • void set_v_scroll(value: float)

  • float get_v_scroll()

如果有垂直滚动条,这将确定行号中的当前垂直滚动值,从顶部行的0开始。


bool selecting_enabled = true 🔗

  • void set_selecting_enabled(value: bool)

  • bool is_selecting_enabled()

如果true,则可以选择文本。

如果false,则用户或select()select_all()方法无法选择文本。


bool shortcut_keys_enabled = true 🔗

  • void set_shortcut_keys_enabled(value: bool)

  • bool is_shortcut_keys_enabled()

如果true,则启用上下文菜单项的快捷键,即使上下文菜单被禁用。


StructuredTextParser structured_text_bidi_override = 0 🔗

为结构化文本设置BiDi算法覆盖。


Array structured_text_bidi_override_options = [] 🔗

  • void set_structured_text_bidi_override_options(value: Array)

  • Array get_structured_text_bidi_override_options()

为BiDi覆盖设置附加选项。


SyntaxHighlighter syntax_highlighter 🔗

要使用的语法荧光笔。

注意:不应在多个TextEdit节点之间使用SyntaxHighlighter实例。


String text = "" 🔗

TextEdit的字符串值。


TextDirection text_direction = 0 🔗

基本文本写作方向。


bool use_custom_word_separators = false 🔗

  • void set_use_custom_word_separators(value: bool)

  • bool is_custom_word_separators_enabled()

如果false,使用Ctrl+Ctrl+(macOS上的Cmd+Cmd+)绑定将使用use_default_word_separators的行为。如果true,如果检测到custom_word_separators中的字符,它也将停止插入符号。对子词移动很有用。此行为也将应用于文本选择的行为。


bool use_default_word_separators = true 🔗

  • void set_use_default_word_separators(value: bool)

  • bool is_default_word_separators_enabled()

如果为 false,只有在检测到空格或标点符号时,使用 Ctrl + LeftCtrl + Right(在 macOS 系统上为 Command + LeftCommand + Right)组合键才会停止移动光标。如果为 true,当光标所在字符属于 !"#$%&'()*+,-./:;<=>?@[\]^`{|}~、Unicode 通用标点符号表或 Unicode 中日韩标点符号表中的一部分时,也会停止光标移动。这对于按子词移动很有用。这种行为也将应用于文本选择的操作中


bool virtual_keyboard_enabled = true 🔗

  • void set_virtual_keyboard_enabled(value: bool)

  • bool is_virtual_keyboard_enabled()

如果true,则在关注支持它的平台时显示本机虚拟键盘。


LineWrappingMode wrap_mode = 0 🔗

设置要使用的换行模式。


方法说明

void _backspace(caret_index: int) virtual 🔗

重写此方法以定义当用户按下退格键时会发生什么。


void _copy(caret_index: int) virtual 🔗

重写此方法以定义用户执行复制操作时会发生什么。


void _cut(caret_index: int) virtual 🔗

重写此方法以定义用户执行剪切操作时会发生什么。


void _handle_unicode_input(unicode_char: int, caret_index: int) virtual 🔗

重写此方法以定义当用户键入提供的keyunicode_char时会发生什么。


void _paste(caret_index: int) virtual 🔗

重写此方法以定义用户执行粘贴操作时会发生什么。


void _paste_primary_clipboard(caret_index: int) virtual 🔗

重写此方法以定义当用户使用鼠标中键执行粘贴操作时会发生什么。

注:此方法仅在Linux实现。


int add_caret(line: int, column: int) 🔗

在给定位置添加新的插入符号。返回新插入符号的索引,如果位置无效,则返回-1


void add_caret_at_carets(below: bool) 🔗

在每个插入符号的上方或下方添加一个额外的插入符号。如果下面的belowtrue,则新的插入符号将在下方和上方添加,否则。


void add_gutter(at: int = -1) 🔗

在此TextEdit中注册一个新的排水沟。使用at具有特定的排水沟顺序。值-1将排水沟附加到右侧。


void add_selection_for_next_occurrence() 🔗

为当前选择的下一个匹配项添加选择和插入符号。如果没有活动选择,请选择插入符号下的单词。


void adjust_carets_after_edit(caret: int, from_line: int, from_col: int, to_line: int, to_col: int) 🔗

已弃用: 由于方法现在可以自行调整光标,因此不再需要。

这种方法什么也不做。


void adjust_viewport_to_caret(caret_index: int = 0) 🔗

调整视口,使插入符号可见。


void apply_ime() 🔗

输入法编辑器(IME)中的文本应用于每个插入符号,并在IME打开时关闭它。


void backspace(caret_index: int = -1) 🔗

当用户按下退格键时调用。可以用_backspace()覆盖。


void begin_complex_operation() 🔗

开始多部分编辑。在调用end_complex_operation()之前,所有编辑都将被视为一个操作。


void begin_multicaret_edit() 🔗

开始对多个插入符号进行编辑。编辑必须使用 end_multicaret_edit() 结束。多插入符号编辑可用于在多个插入符号处编辑文本,并延迟合并插入符号,直到结束,这样插入符号的索引不会立即受到影响。begin_multicaret_edit()end_multicaret_edit() 可以嵌套,合并将在最后一个 end_multicaret_edit() 处发生。

begin_complex_operation()
begin_multicaret_edit()
for i in range(get_caret_count()):
    if multicaret_edit_ignore_caret(i):
        continue
    # Logic here.
end_multicaret_edit()
end_complex_operation()

void cancel_ime() 🔗

关闭输入法编辑器(IME)(如果它已打开)。IME中的任何文本都将丢失。


void center_viewport_to_caret(caret_index: int = 0) 🔗

将视口放在编辑插入符号所在行的中心。这也将scroll_horizontal值重置为0


void clear() 🔗

执行TextEdit的完全重置,包括撤消历史记录。


void clear_undo_history() 🔗

清除撤消历史记录。


void collapse_carets(from_line: int, from_column: int, to_line: int, to_column: int, inclusive: bool = false) 🔗

将给定范围内的所有插入符号折叠到from_linefrom_column位置。

inclusive适用于两端。

如果is_in_mulitcaret_edit()true,则折叠的插入符号将为multicaret_edit_ignore_caret()true

merge_overlapping_carets()将被调用,如果任何插入符号折叠。


void copy(caret_index: int = -1) 🔗

复制当前选定的文本。可以用_copy()覆盖。


void cut(caret_index: int = -1) 🔗

剪切是当前选择。可以用_cut()覆盖。


void delete_selection(caret_index: int = -1) 🔗

删除选定的文本。


void deselect(caret_index: int = -1) 🔗

取消选择当前选择。


void end_action() 🔗

标记以start_action()开始的当前操作中的步骤的结束。


void end_complex_operation() 🔗

结束以begin_complex_operation()开头的多部分编辑。如果在复杂操作之外调用,则将当前操作压入撤消/重做堆栈。


void end_multicaret_edit() 🔗

结束以begin_multicaret_edit()开始的对多个插入符号的编辑。如果这是最后一次end_multicaret_edit()并且调用了merge_overlapping_carets(),则插入符号将被合并。


int get_caret_column(caret_index: int = 0) const 🔗

返回编辑插入符号所在的列。


int get_caret_count() const 🔗

返回此TextEdit中插入符号的数量。


Vector2 get_caret_draw_pos(caret_index: int = 0) const 🔗

返回插入符号像素绘制位置。


PackedInt32Array get_caret_index_edit_order() 🔗

已弃用: 光标不再需要按任何特定顺序进行编辑。如果需要对光标进行排序,请改用 get_sorted_carets()

按编辑顺序返回插入符号索引列表,此操作从下到上执行。编辑顺序是指应用insert_text_at_caret()等操作的方式。


int get_caret_line(caret_index: int = 0) const 🔗

返回编辑插入符号所在的行。


int get_caret_wrap_index(caret_index: int = 0) const 🔗

返回编辑插入符号所在的包装索引。


int get_first_non_whitespace_column(line: int) const 🔗

返回给定行上包含非空白字符的第一列。如果只有空格,则返回字符数。


int get_first_visible_line() const 🔗

返回第一个可见行。


int get_gutter_count() const 🔗

返回注册的排水沟数。


String get_gutter_name(gutter: int) const 🔗

返回给定索引处的排水沟名称。


GutterType get_gutter_type(gutter: int) const 🔗

返回给定索引处的排水沟类型。排水沟可以包含图标、文本或自定义视觉效果。有关选项,请参阅GutterType


int get_gutter_width(gutter: int) const 🔗

返回给定索引处排水沟的宽度。


HScrollBar get_h_scroll_bar() const 🔗

返回TextEdit使用的HScrollBar


int get_indent_level(line: int) const 🔗

返回给定行的缩进级别。这是行开头的空格和制表符的数量,制表符考虑了制表符的大小(参见get_tab_size())。


int get_last_full_visible_line() const 🔗

返回最后可见的行。使用get_last_full_visible_line_wrap_index()作为包装索引。


int get_last_full_visible_line_wrap_index() const 🔗

返回最后一个可见行的最后一个可见换行索引。


int get_last_unhidden_line() const 🔗

返回整个TextEdit中最后一个未隐藏的行。


String get_line(line: int) const 🔗

返回特定行的文本。


Color get_line_background_color(line: int) const 🔗

返回给定行的自定义背景颜色。如果未设置颜色,则返回Color(0,0,0,0)


Vector2i get_line_column_at_pos(position: Vector2i, clamp_line: bool = true, clamp_column: bool = true) const 🔗

返回给定位置的行和列。在返回的向量中,x是列,y是行。

如果clamp_linefalse并且position在最后一行下方,则返回Vector2i(-1,-1)

如果clamp_columnfalse并且position在行的列范围之外,则返回Vector2i(-1,-1)


int get_line_count() const 🔗

返回文本中的行数。


Texture2D get_line_gutter_icon(line: int, gutter: int) const 🔗

返回当前gutterline处的图标。这仅在gutter类型为GUTTER_TYPE_ICON时有效(参见set_gutter_type())。


Color get_line_gutter_item_color(line: int, gutter: int) const 🔗

返回当前gutterline处的颜色。


Variant get_line_gutter_metadata(line: int, gutter: int) const 🔗

返回当前在gutterline处的元数据。


String get_line_gutter_text(line: int, gutter: int) const 🔗

返回当前gutterline处的文本。这仅在gutter类型为GUTTER_TYPE_STRING时有效(参见set_gutter_type())。


int get_line_height() const 🔗

返回所有行中行高的最大值。

注意:返回值受line_spacingfont_size的影响。并且不会小于1


Array[Vector2i] get_line_ranges_from_carets(only_selections: bool = false, merge_adjacent: bool = true) const 🔗

返回行范围的Array,其中x是第一行,y是最后一行。这些范围内的所有行都将带有插入符号或成为选择的一部分。每一行只能是一个行范围的一部分,即使它有多个插入符号。

如果选择的结束列(get_selection_to_column())位于0列,则该行将不包括在内。如果一个选择在另一个选择结束后开始,并且merge_adjacenttrue,或者它们在同一行开始和结束,则一行范围将包括两个选择。


int get_line_width(line: int, wrap_index: int = -1) const 🔗

返回linewrap_index的宽度(以像素为单位)。


String get_line_with_ime(line: int) const 🔗

返回当前显示的行文本,包括IME组合字符串。


int get_line_wrap_count(line: int) const 🔗

返回给定行被换行的次数。


int get_line_wrap_index_at_column(line: int, column: int) const 🔗

返回给定行上给定列的包装索引。范围从0get_line_wrap_count()


PackedStringArray get_line_wrapped_text(line: int) const 🔗

返回表示每个包装索引的String数组。


Vector2 get_local_mouse_pos() const 🔗

返回为文本方向调整的本地鼠标位置。


PopupMenu get_menu() const 🔗

返回此 TextEditPopupMenu。默认情况下,在 TextEdit 上右键单击时会显示此菜单。你可以添加自定义菜单项或删除标准菜单项。确保你的 ID 不会与标准 ID 冲突(请参阅 MenuItems)。例如: .. tabs:

.. code-tab:: s3script

   func _ready():
       var menu = get_menu()
       # 移除 “Redo”(重做)之后的所有项目.
       menu.item_count = menu.get_item_index(MENU_REDO) + 1
       # 添加自定义项目.
       menu.add_separator()
       menu.add_item("Insert Date", MENU_MAX + 1)
       # 连接回调函数.
       menu.id_pressed.connect(_on_item_pressed)

   func _on_item_pressed(id):
       if id == MENU_MAX + 1:
           insert_text_at_caret(Time.get_date_string_from_system())

.. code-tab:: csharp

   public override void _Ready()
   {
       var menu = GetMenu();
       // 移除 Redo”(重做)之后的所有项目.
       menu.ItemCount = menu.GetItemIndex(TextEdit.MenuItems.Redo) + 1;
       // 添加自定义项目.
       menu.AddSeparator();
       menu.AddItem("Insert Date", TextEdit.MenuItems.Max + 1);
       // 添加事件处理器.
       menu.IdPressed += OnItemPressed;
   }

   public void OnItemPressed(int id)
   {
       if (id == TextEdit.MenuItems.Max + 1)
       {
           InsertTextAtCaret(Time.GetDateStringFromSystem());
       }
   }

注意:这是一个必需的内部节点,移除并释放它可能会导致崩溃。如果你希望隐藏它或其任何子节点,请使用它们的 Window.visible 属性


int get_minimap_line_at_pos(position: Vector2i) const 🔗

返回position处的等效最小地图线。


int get_minimap_visible_lines() const 🔗

返回可以在小地图上绘制的行数。


Vector2i get_next_visible_line_index_offset_from(line: int, wrap_index: int, visible_amount: int) const 🔗

类似于get_next_visible_line_offset_from(),但考虑了行换行索引。在返回的向量中,x是行,y是换行索引。


int get_next_visible_line_offset_from(line: int, visible_amount: int) const 🔗

返回从lineline+visible_amount的下一个可见行的计数。也可以向后计数。例如,如果TextEdit有5行隐藏了第2行和第3行,用line=1调用它,visible_amount=1将返回3。


Vector2i get_pos_at_line_column(line: int, column: int) const 🔗

返回给定linecolumn的本地位置。如果返回向量的xy等于-1,则该位置位于控件的可视区域之外。

注:Y位置对应线的底侧,使用get_rect_at_line_column()得到顶侧位置。


Rect2i get_rect_at_line_column(line: int, column: int) const 🔗

返回给定linecolumn字位的本地位置和大小。如果返回rect的xy位置等于-1,则该位置位于控件的可视区域之外。

注意:返回的rect的Y位置对应于线的顶部,不像get_pos_at_line_column()返回底部。


int get_saved_version() const 🔗

tag_saved_version()返回最后标记保存的版本。


float get_scroll_pos_for_line(line: int, wrap_index: int = 0) const 🔗

返回linewrap_index的滚动位置。


String get_selected_text(caret_index: int = -1) 🔗

返回插入符号选择中的文本,如果caret_index是其默认值-1,则返回所有插入符号。


int get_selection_at_line_column(line: int, column: int, include_edges: bool = true, only_selections: bool = true) const 🔗

返回给定linecolumn处选择的插入符号索引,如果没有,则返回-1

如果include_edgesfalse,则该位置必须在所选内容内,而不是在任一端。如果only_selectionsfalse,则也将考虑没有选择的插入符号。


int get_selection_column(caret_index: int = 0) const 🔗

已弃用: 请改用 get_selection_origin_column()

返回所选内容的原始开始列。


int get_selection_from_column(caret_index: int = 0) const 🔗

返回选择开始列。如果没有选择,则返回插入符号列。


int get_selection_from_line(caret_index: int = 0) const 🔗

返回选择开始行。如果没有选择,则返回插入符号行。


int get_selection_line(caret_index: int = 0) const 🔗

已弃用: 改用 get_selection_origin_line()

返回所选内容的原始起始行。


SelectionMode get_selection_mode() const 🔗

返回当前选择模式。


int get_selection_origin_column(caret_index: int = 0) const 🔗

返回所选内容的原始列。这是插入符号的另一端。


int get_selection_origin_line(caret_index: int = 0) const 🔗

返回所选内容的原始线。这是插入符号的另一端。


int get_selection_to_column(caret_index: int = 0) const 🔗

返回选择结束列。如果没有选择,则返回插入符号列。


int get_selection_to_line(caret_index: int = 0) const 🔗

返回选择结束行。如果没有选择,则返回插入符号行。


PackedInt32Array get_sorted_carets(include_ignored_carets: bool = false) const 🔗

返回按选择排序的插入符号,从最低行和列开始到最高(从文本的顶部到底部)。

如果include_ignored_caretsfalse,则multicaret_edit_ignore_caret()中的插入符号将被忽略。


int get_tab_size() const 🔗

返回TextEdit的标签大小。


int get_total_gutter_width() const 🔗

返回所有排水沟和内部填充的总宽度。


int get_total_visible_line_count() const 🔗

返回文本中的总行数。这包括换行,不包括折叠行。如果wrap_mode设置为LINE_WRAPPING_NONE,并且没有折叠行(参见CodeEdit.is_line_folded()),则这等价于get_line_count()。有关有限范围的行,请参见get_visible_line_count_in_range()


VScrollBar get_v_scroll_bar() const 🔗

返回TextEditVScrollBar


int get_version() const 🔗

返回TextEdit的当前版本。该版本是撤消/重做历史记录的操作计数。


int get_visible_line_count() const 🔗

根据此控件的高度返回可视适合的行数,向下舍入。


int get_visible_line_count_in_range(from_line: int, to_line: int) const 🔗

返回文本中from_lineto_line(含)之间的总行数。这包括换行,不包括折叠行。如果范围涵盖所有行,则等效于get_total_visible_line_count()


String get_word_at_pos(position: Vector2) const 🔗

返回position处的单词。


String get_word_under_caret(caret_index: int = -1) const 🔗

返回插入符号位置下带有单词的String文本。


bool has_ime_text() const 🔗

如果用户在输入法编辑器(IME)中有文本,则返回true


bool has_redo() const 🔗

如果“重做”操作可用,则返回true


bool has_selection(caret_index: int = -1) const 🔗

如果用户选择了文本,则返回true


bool has_undo() const 🔗

如果“撤消”操作可用,则返回true


void insert_line_at(line: int, text: String) 🔗

line处插入带有text的新行。


void insert_text(text: String, line: int, column: int, before_selection_begin: bool = true, before_selection_end: bool = false) 🔗

linecolumn处插入text

如果before_selection_begintrue,则从linecolumn开始的插入符号和选择将连同后面的所有插入符号一起移动到插入文本的末尾。

如果before_selection_endtrue,则以linecolumn结尾的选择将扩展到插入文本的末尾。这些参数可用于在选择内部或外部插入文本。


void insert_text_at_caret(text: String, caret_index: int = -1) 🔗

在插入符号位置插入指定的文本。


bool is_caret_after_selection_origin(caret_index: int = 0) const 🔗

如果选择的插入符号在选择原点之后,则返回true。这可用于确定选择的方向。


bool is_caret_visible(caret_index: int = 0) const 🔗

如果插入符号可见,则返回true,否则返回false。如果启用滚动时插入符号在可滚动区域之外,则将认为插入符号是隐藏的。

注意:is_caret_visible()不考虑插入符号是否仍在可滚动区域内。只要插入符号满足TextEdit自身可见的条件,即使插入符号不在屏幕上,它也会返回true。这包括使用scroll_fit_content_widthscroll_fit_content_height导致TextEdit扩展到视口边界之外。


bool is_dragging_cursor() const 🔗

如果用户拖动鼠标进行滚动、选择或文本拖动,则返回true


bool is_gutter_clickable(gutter: int) const 🔗

返回true,如果给定索引处的gutter是可点击的。参见set_gutter_clickable()


bool is_gutter_drawn(gutter: int) const 🔗

返回true,如果当前绘制了给定索引处的排水沟。请参阅set_gutter_draw()


bool is_gutter_overwritable(gutter: int) const 🔗

返回true,如果给定索引处的gutter是可覆盖的。参见set_gutter_overwritable()


bool is_in_mulitcaret_edit() const 🔗

返回true如果begin_multicaret_edit()已被调用,而end_multicaret_edit()尚未被调用。


bool is_line_gutter_clickable(line: int, gutter: int) const 🔗

返回true,如果给定行上给定索引处的排水沟可单击。请参阅set_line_gutter_clickable()


bool is_line_wrapped(line: int) const 🔗

如果换行,则返回。


bool is_menu_visible() const 🔗

如果菜单可见,则返回true。使用this代替get_menu()。可见以提高性能(因此避免创建菜单)。参见get_menu()


bool is_mouse_over_selection(edges: bool, caret_index: int = -1) const 🔗

如果鼠标悬停在所选内容上,则返回true。如果edgestrue,则边缘被视为所选内容的一部分。


bool is_overtype_mode_enabled() const 🔗

如果启用了覆盖模式,则返回true。请参见set_overtype_mode_enabled()


void menu_option(option: int) 🔗

执行MenuItems枚举中定义的给定操作。


void merge_gutters(from_line: int, to_line: int) 🔗

from_line中的排水沟合并到to_line中。只有可覆盖的排水沟会被复制。参见set_gutter_overwritable()


void merge_overlapping_carets() 🔗

合并任何重叠的插入符号。将偏爱最新的插入符号,或带有选择的插入符号。

如果is_in_mulitcaret_edit()true,则合并将在多区域编辑结束时排队进行。请参阅begin_multicaret_edit()end_multicaret_edit()

注意:这不是在插入符号改变位置时调用的,而是在某些操作之后调用的,因此有可能进入插入符号重叠的状态。


bool multicaret_edit_ignore_caret(caret_index: int) const 🔗

返回true,如果给定的caret_index应作为多点编辑的一部分被忽略。请参阅begin_multicaret_edit()end_multicaret_edit()。应忽略的插入符号是已删除文本的一部分,可能会在编辑结束时合并,或在编辑期间添加的插入符号。

如果应该忽略插入符号,建议在迭代多个插入符号的循环中继续


void paste(caret_index: int = -1) 🔗

粘贴到当前位置。可以用_paste()覆盖。


void paste_primary_clipboard(caret_index: int = -1) 🔗

粘贴主剪贴板。


void redo() 🔗

执行重做操作。


void remove_caret(caret: int) 🔗

删除给定的插入符号索引。

注意:这可能会导致调整所有其他插入符号索引。


void remove_gutter(gutter: int) 🔗

删除给定索引处的排水沟。


void remove_line_at(line: int, move_carets_down: bool = true) 🔗

删除line处的文本行。此行上的标记将尝试匹配其先前的视觉x位置。

如果move_carets_downtrue插入符号将向下移动到下一行,否则插入符号将向上移动。


void remove_secondary_carets() 🔗

删除所有额外的插入符号。


void remove_text(from_line: int, from_column: int, to_line: int, to_column: int) 🔗

删除给定位置之间的文本。


在文本内执行搜索。搜索标志可以在 SearchFlags 枚举中指定。

在返回的向量中,x 是列,y 是行。如果未找到结果,则两者都等于 -1

var result = search("print", SEARCH_WHOLE_WORDS, 0, 0)
if result.x != -1:
    # 找到结果.
    var line_number = result.y
    var column_number = result.x

void select(origin_line: int, origin_column: int, caret_line: int, caret_column: int, caret_index: int = 0) 🔗

为给定的caret_indexorigin_lineorigin_column中选择文本到caret_linecaret_column。这会移动选择原点和插入符号。如果位置相同,则取消选择。

如果selecting_enabledfalse,则不会发生选择。

注意:如果支持多个插入符号,这将不会检查任何重叠。参见merge_overlapping_carets()


void select_all() 🔗

选择所有文本。

如果selecting_enabledfalse,则不会发生选择。


void select_word_under_caret(caret_index: int = -1) 🔗

选择插入符号下的单词。


void set_caret_column(column: int, adjust_viewport: bool = true, caret_index: int = 0) 🔗

将插入符号移动到指定的column索引。

如果adjust_viewporttrue,则移动发生后视口将以插入符号位置为中心。

注意:如果支持多个插入符号,这将不会检查任何重叠。参见merge_overlapping_carets()


void set_caret_line(line: int, adjust_viewport: bool = true, can_be_hidden: bool = true, wrap_index: int = 0, caret_index: int = 0) 🔗

将插入符号移动到指定的line索引。插入符号列将移动到上次调用set_caret_column()时的相同视觉位置,或固定到行尾。

如果adjust_viewporttrue,则移动发生后视口将以插入符号位置为中心。

如果can_be_hiddentrue,则可以隐藏指定的line

如果wrap_index-1,则插入符号列将被限制到line的长度。如果wrap_index大于-1,则将移动该列以尝试将该行wrap_index上的可视x位置与上次调用set_caret_column()时的位置相匹配。

注意:如果支持多个插入符号,这将不会检查任何重叠。参见merge_overlapping_carets()


void set_gutter_clickable(gutter: int, clickable: bool) 🔗

如果true,鼠标光标将在给定索引处悬停在排水沟上时变为指针(Control.CURSOR_POINTING_HAND)。参见is_gutter_clickable()set_line_gutter_clickable()


void set_gutter_custom_draw(column: int, draw_callback: Callable) 🔗

为给定索引处的gutter设置自定义绘图回调。draw_callback必须接受以下参数:行索引int、gutter索引int和区域Rect2。此回调仅在gutter类型为GUTTER_TYPE_CUSTOM时有效(参见set_gutter_type())。


void set_gutter_draw(gutter: int, draw: bool) 🔗

如果true,则绘制给定索引处的gutter。gutter类型(set_gutter_type())决定了它的绘制方式。参见is_gutter_drawn()


void set_gutter_name(gutter: int, name: String) 🔗

设置给定索引处的排水沟名称。


void set_gutter_overwritable(gutter: int, overwritable: bool) 🔗

如果true,则使用merge_gutters()时可以覆盖给定索引处的排水沟的行数据。参见is_gutter_overwritable()


void set_gutter_type(gutter: int, type: GutterType) 🔗

在给定索引处设置排水沟的类型。排水沟可以包含图标、文本或自定义视觉效果。有关选项,请参阅GutterType


void set_gutter_width(gutter: int, width: int) 🔗

在给定的索引处设置排水沟的宽度。


void set_line(line: int, new_text: String) 🔗

设置特定line的文本。

线上将试图保持他们的视觉x位置。


void set_line_as_center_visible(line: int, wrap_index: int = 0) 🔗

linewrap_index定位在视口的中心。


void set_line_as_first_visible(line: int, wrap_index: int = 0) 🔗

linewrap_index定位在视口顶部。


void set_line_as_last_visible(line: int, wrap_index: int = 0) 🔗

linewrap_index定位在视口底部。


void set_line_background_color(line: int, color: Color) 🔗

设置给定行的自定义背景颜色。如果是透明的,则此颜色应用于默认背景颜色之上(参见background_color)。如果设置为Color(0,0,0,0),则不应用其他颜色。


void set_line_gutter_clickable(line: int, gutter: int, clickable: bool) 🔗

如果clickabletrue,则使给定line上的gutter可点击。这类似于set_gutter_clickable(),但只适用于单行。如果is_gutter_clickable()true,则不会产生任何影响。参见is_line_gutter_clickable()gutter_clicked


void set_line_gutter_icon(line: int, gutter: int, icon: Texture2D) 🔗

linegutter的图标设置为icon。这仅在gutter类型为GUTTER_TYPE_ICON时有效(参见set_gutter_type())。


void set_line_gutter_item_color(line: int, gutter: int, color: Color) 🔗

linegutter的颜色设置为color


void set_line_gutter_metadata(line: int, gutter: int, metadata: Variant) 🔗

linegutter的元数据设置为metadata


void set_line_gutter_text(line: int, gutter: int, text: String) 🔗

line上的gutter的文本设置为text。这仅在gutter类型为GUTTER_TYPE_STRING时有效(参见set_gutter_type())。


void set_overtype_mode_enabled(enabled: bool) 🔗

如果true,则启用覆盖模式。在此模式下,键入会覆盖现有文本而不是插入文本。ProjectSettings.input/ui_text_toggle_insert_mode操作切换覆盖模式。请参阅is_overtype_mode_enabled()


void set_search_flags(flags: int) 🔗

设置搜索flags。这与set_search_text()一起使用以突出显示搜索文本的出现。可以从SearchFlags枚举中指定搜索标志。


void set_search_text(search_text: String) 🔗

设置搜索文本。参见set_search_flags()


void set_selection_mode(mode: SelectionMode) 🔗

设置当前选择模式。


void set_selection_origin_column(column: int, caret_index: int = 0) 🔗

将给定caret_index的选择原点列设置为column。如果选择原点移动到插入符号位置,则选择将取消选择。


void set_selection_origin_line(line: int, can_be_hidden: bool = true, wrap_index: int = -1, caret_index: int = 0) 🔗

将给定caret_index的选择原点线设置为line。如果选择原点移动到插入符号位置,则选择将取消选择。

如果can_be_hiddenfalse,则该行将设置为下方或上方最近的未隐藏行。

如果wrap_index-1,则选择源列将被限制到line的长度。如果wrap_index大于-1,则将移动列以尝试将行wrap_index上的可视x位置与上次调用set_selection_origin_column()select()时的位置相匹配。


void set_tab_size(size: int) 🔗

设置要使用的TextEdit的选项卡大小。


void set_tooltip_request_func(callback: Callable) 🔗

提供自定义工具提示文本。回调方法必须采用以下参数:hovered_word: String


void skip_selection_for_next_occurrence() 🔗

为当前选定内容的下一次出现移动选定内容和插入符号。如果没有活动选定内容,则移动到插入符号下的单词的下一次出现。


void start_action(action: EditAction) 🔗

启动一个动作,如果action不同,将结束当前动作。

在调用end_action()、触发ProjectSettings.gui/timers/text_edit_idle_detect_secstart_action()end_action()调用之外的新的可撤消步骤之后,操作也将结束。


void swap_lines(from_line: int, to_line: int) 🔗

交换两条线。标记将与线条交换。


void tag_saved_version() 🔗

将当前版本标记为已保存。


void undo() 🔗

执行撤消操作。


主题属性说明

Color background_color = Color(0, 0, 0, 0) 🔗

设置此TextEdit的背景Color


Color caret_background_color = Color(0, 0, 0, 1) 🔗

Color使用块插入符号时插入符号后面的文本。


Color caret_color = Color(0.875, 0.875, 0.875, 1) 🔗

插入符号的Color。这可以设置为完全透明的颜色以完全隐藏插入符号。


Color current_line_color = Color(0.25, 0.25, 0.26, 0.8) 🔗

包含插入符号的行的背景Color


Color font_color = Color(0.875, 0.875, 0.875, 1) 🔗

设置字体Color


Color font_outline_color = Color(0, 0, 0, 1) 🔗

TextEdit的文本大纲的色调。


Color font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6) 🔗

placeholder_text的字体颜色。


Color font_readonly_color = Color(0.875, 0.875, 0.875, 0.5) 🔗

禁用editable时设置字体Color


Color font_selected_color = Color(0, 0, 0, 0) 🔗

设置选定文本的Color。如果等于Color(0,0,0,0),它将被忽略。


Color search_result_border_color = Color(0.3, 0.3, 0.3, 0.4) 🔗

与搜索查询匹配的文本周围边框的Color


Color search_result_color = Color(0.3, 0.3, 0.3, 1) 🔗

Color与搜索查询匹配的文本后面。


Color selection_color = Color(0.5, 0.5, 0.5, 1) 🔗

设置文本选择的高亮Color


Color word_highlighted_color = Color(0.5, 0.5, 0.5, 0.25) 🔗

设置多次出现的高亮Color。必须启用highlight_all_occurrences


int caret_width = 1 🔗

插入符号的宽度(以像素为单位)。较大的值可用于通过确保插入符号易于可见来提高可访问性,或确保与大字体大小的一致性。如果设置为0或更低,插入符号宽度会自动设置为1像素并乘以显示缩放系数。


int line_spacing = 4 🔗

行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。


int outline_size = 0 🔗

文本大纲的大小。

注意:如果使用启用了FontFile.multichannel_signed_distance_field的字体,则其FontFile.msdf_pixel_range必须设置为至少两倍outline_size的值才能使轮廓渲染看起来正确。否则,轮廓可能会比预期的更早被切断。


Font font 🔗

设置默认Font


int font_size 🔗

设置默认字体大小。


Texture2D space 🔗

为空格文本字符设置自定义Texture2D


Texture2D tab 🔗

为制表符文本字符设置自定义Texture2D


StyleBox focus 🔗

设置对焦时的StyleBoxfocus StyleBox显示在底座StyleBox上方,因此应使用部分透明的StyleBox来确保底座StyleBox保持可见。表示轮廓或下划线的StyleBox可以很好地用于此目的。要禁用焦点视觉效果,请分配StyleBoxEmpty资源。请注意,禁用焦点视觉效果会损害键盘/控制器导航可用性,因此出于可访问性原因不建议这样做。


StyleBox normal 🔗

设置此TextEditStyleBox


StyleBox read_only 🔗

editable被禁用时,设置此TextEditStyleBox