TextEdit

Наследует: Control < CanvasItem < Node < Object

Наследуется от: CodeEdit

Многострочный текстовый редактор.

Описание

Многострочный текстовый редактор. Он также имеет ограниченные возможности для редактирования кода, такие как поддержка подсветки синтаксиса. Более продвинутые возможности для редактирования кода см. в CodeEdit.

При вводе текста можно вставлять специальные символы с использованием альтернативных кодов Unicode, OEM или Windows:

  • Для ввода кодовых точек Unicode удерживайте Alt и введите кодовую точку на цифровой клавиатуре. Например, чтобы ввести символ á (U+00E1), удерживайте Alt и введите +E1 на цифровой клавиатуре (начальные нули можно опустить).

  • Для ввода кодовых точек OEM удерживайте Alt и введите код на цифровой клавиатуре. Например, чтобы ввести символ á (OEM 160), удерживайте Alt и введите 160 на цифровой клавиатуре.

  • Чтобы ввести кодовые точки Windows, удерживайте Alt и введите код на цифровой клавиатуре. Например, чтобы ввести символ á (Windows 0225), удерживайте Alt и введите 0, 2, 2, 5 на цифровой клавиатуре. Начальный ноль здесь не должен быть опущен, так как именно так кодовые точки Windows отличаются от кодовых точек OEM.

Примечание: Большинство методов viewport, caret и edit содержат аргумент caret_index для поддержки caret_multiple. Аргумент должен быть одним из следующих: -1 для всех кареток, 0 для главной каретки или больше 0 для второстепенных кареток в порядке их создания.

Примечание: При удерживании Alt вертикальное колесо прокрутки будет прокручиваться в 5 раз быстрее, чем обычно. Это также работает в редакторе скриптов Godot.

Свойства

AutowrapMode

autowrap_mode

3

bool

backspace_deletes_composite_character_enabled

false

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

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

bool

tab_input_mode

true

String

text

""

TextDirection

text_direction

0

bool

use_custom_word_separators

false

bool

use_default_word_separators

true

bool

virtual_keyboard_enabled

true

bool

virtual_keyboard_show_on_focus

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

int

get_next_composite_character_column(line: int, column: int) 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

int

get_previous_composite_character_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

int

wrap_offset

10

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

Идентификатор подменю «Направление написания текста».

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

Идентификатор подменю «Вставить управляющий символ».

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(), оно используется для размещения текста, заданного с помощью метода set_line_gutter_text().

GutterType GUTTER_TYPE_ICON = 1

Если желоб установлен в качестве значка с помощью метода set_gutter_type(), он используется для размещения значка, установленного с помощью метода set_line_gutter_icon().

GutterType GUTTER_TYPE_CUSTOM = 2

Если желоб настроен как пользовательский с помощью set_gutter_type(), он используется для хранения пользовательских визуальных элементов, управляемых методом обратного вызова, установленным с помощью метода set_gutter_custom_draw().


Описания свойств

AutowrapMode autowrap_mode = 3 🔗

Если wrap_mode установлен в LINE_WRAPPING_BOUNDARY, задает режим переноса текста.


bool backspace_deletes_composite_character_enabled = false 🔗

  • void set_backspace_deletes_composite_character_enabled(value: bool)

  • bool is_backspace_deletes_composite_character_enabled()

Если true и caret_mid_grapheme в значении false, Возврат удаляет весь составной символ, такой как ❤️‍🩹, вместо удаления части составного символа.


  • 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_separators имеет значение true. Символы следует определять без разделителей, например #_!.


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, символ «табуляции» будет иметь видимое представление.


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

Если true, TextEdit отключит вертикальную прокрутку и подгонит минимальную высоту под количество видимых строк. Когда и это свойство, и 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()

Если true, TextEdit отключит горизонтальную прокрутку и подгонит минимальную ширину к самой широкой строке в тексте. Когда и это свойство, и 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 🔗

Подсветка синтаксиса для использования.

Примечание: Экземпляр SyntaxHighlighter не следует использовать в нескольких узлах TextEdit.


bool tab_input_mode = true 🔗

  • void set_tab_input_mode(value: bool)

  • bool get_tab_input_mode()

Если true, ProjectSettings.input/ui_text_indent вводит символ Tab, в противном случае фокус клавиатуры перемещается на следующий Control в сцене.


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 + Left или Ctrl + Right (Cmd + Left или Cmd + Right на macOS) привязки будут использовать поведение 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 + Left или Ctrl + Right (Cmd + Left или Cmd + Right на macOS) остановит перемещение курсора только в случае обнаружения пробела или знака препинания. Если true, то курсор также остановится, если символ является частью !"#$%&'()*+,-./:;<=>?@[\]^`{|}~, таблицы общей пунктуации Unicode или таблицы пунктуации Unicode CJK. Полезно для перемещения подслов. Это поведение также будет применено к поведению выделения текста.


bool virtual_keyboard_enabled = true 🔗

  • void set_virtual_keyboard_enabled(value: bool)

  • bool is_virtual_keyboard_enabled()

Если true, встроенная виртуальная клавиатура включена на платформах, которые ее поддерживают.


bool virtual_keyboard_show_on_focus = true 🔗

  • void set_virtual_keyboard_show_on_focus(value: bool)

  • bool get_virtual_keyboard_show_on_focus()

Если true, то собственная виртуальная клавиатура отображается при фокусировке на платформах, которые ее поддерживают.


LineWrappingMode wrap_mode = 0 🔗

Устанавливает используемый режим переноса строк.


Описания метода

void _backspace(caret_index: int) virtual 🔗

Переопределите этот метод, чтобы определить, что происходит, когда пользователь нажимает клавишу Backspace.


void _copy(caret_index: int) virtual 🔗

Переопределите этот метод, чтобы определить, что происходит, когда пользователь выполняет операцию копирования.


void _cut(caret_index: int) virtual 🔗

Переопределите этот метод, чтобы определить, что происходит, когда пользователь выполняет операцию вырезания.


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

Переопределите этот метод, чтобы определить, что произойдет, когда пользователь введет предоставленный ключ unicode_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) 🔗

Добавляет дополнительный каре выше или ниже каждого каретки. Если below равен true, то новый каре будет добавлен ниже и выше в противном случае.


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

Устарело: No longer necessary since methods now adjust carets themselves.

Этот метод ничего не даёт.


void adjust_viewport_to_caret(caret_index: int = 0) 🔗

Отрегулируйте область просмотра так, чтобы курсор был виден.


void apply_ime() 🔗

Применяет текст из редактора методов ввода (IME) к каждому курсору и закрывает IME, если он открыт.


void backspace(caret_index: int = -1) 🔗

Вызывается, когда пользователь нажимает клавишу backspace. Может быть переопределено с помощью _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_line и from_column.

inclusive применяется к обоим концам.

Если is_in_mulitcaret_edit() имеет значение true, свернутые каретки будут иметь значение true для multicaret_edit_ignore_caret().

merge_overlapping_carets() будет вызван, если какие-либо каретки были свернуты.


void copy(caret_index: int = -1) 🔗

Копирует текущее выделение текста. Может быть переопределено с помощью _copy().


void cut(caret_index: int = -1) 🔗

Cut — текущий выбор. Может быть переопределен с помощью _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() 🔗

Устарело: Carets no longer need to be edited in any specific order. If the carets need to be sorted, use get_sorted_carets() instead.

Возвращает список индексов каретки в порядке их редактирования, это делается снизу вверх. Порядок редактирования относится к способу применения таких действий, как 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 🔗

Возвращает тип желоба (gutter) по указанному индексу. Жёлоба могут содержать значки, текст или пользовательские визуальные элементы.


int get_gutter_width(gutter: int) const 🔗

Возвращает имя желоба по указанному индексу.


HScrollBar get_h_scroll_bar() const 🔗

Возвращает HScrollBar, используемый TextEdit.


int get_indent_level(line: int) const 🔗

Возвращает уровень отступа указанной строки. Это количество пробелов и табуляции (tabs) в начале строки, при этом табуляция учитывает размер табуляции (см. 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 🔗

Возвращает значок, который в данный момент находится в gutter в line. Это работает только в том случае, если типом gutter является GUTTER_TYPE_ICON (см. set_gutter_type()).


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

Возвращает текущий цвет в gutter в line.


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

Возвращает метаданные, которые в данный момент находятся в gutter в line.


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

Возвращает текст, который в данный момент находится в gutter в line. Это работает только в том случае, если типом gutter является GUTTER_TYPE_STRING (см. set_gutter_type()).


int get_line_height() const 🔗

Возвращает максимальное значение высоты строки среди всех строк.

Примечание: На возвращаемое значение влияют line_spacing и font_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 🔗

Возвращает ширину в пикселях wrap_index в line.


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 🔗

Возвращает индекс переноса указанного столбца на указанной строке. Диапазон значений от 0 до get_line_wrap_count().


PackedStringArray get_line_wrapped_text(line: int) const 🔗

Возвращает массив String-ы, представляющий каждый обернутый индекс.


Vector2 get_local_mouse_pos() const 🔗

Возвращает локальное положение мыши, скорректированное с учетом направления текста.


PopupMenu get_menu() const 🔗

Возвращает PopupMenu этого TextEdit. По умолчанию это меню отображается при щелчке правой кнопкой мыши по TextEdit.

Вы можете добавлять пользовательские пункты меню или удалять стандартные. Убедитесь, что ваши идентификаторы не конфликтуют со стандартными (см. MenuItems). Например:

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

Предупреждение: Это обязательный внутренний узел, его удаление и освобождение может привести к сбою. Если вы хотите скрыть его или любого из его дочерних элементов, используйте их свойство Window.visible.


int get_minimap_line_at_pos(position: Vector2i) const 🔗

Возвращает эквивалентную строку миникарты в position.


int get_minimap_visible_lines() const 🔗

Возвращает количество линий, которые могут быть нарисованы на мини-карте.


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

Возвращает правильный столбец в конце составного символа, например ❤️‍🩹 (исцеляющее сердце; Unicode: U+2764 U+FE0F U+200D U+1FA79), который состоит из более чем одной кодовой точки Unicode, если каретка находится в начале составного символа. Также возвращает правильный столбец с кареткой в середине графемы и для несоставных символов.

Примечание: Для проверки местоположения каретки используйте get_next_composite_character_column(get_caret_line(), get_caret_column())


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 🔗

Возвращает количество до следующей видимой строки от line до line + visible_amount. Также можно вести обратный отсчет. Например, если в TextEdit 5 строк, а строки 2 и 3 скрыты, вызов этого с line = 1, visible_amount = 1 вернет 3.


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

Возвращает локальную позицию для заданных line и column. Если x или y возвращаемого вектора равны -1, позиция находится за пределами видимой области элемента управления.

Примечание: Позиция Y соответствует нижней стороне линии. Используйте get_rect_at_line_column(), чтобы получить позицию верхней стороны.


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

Возвращает правильный столбец в начале составного символа, например ❤️‍🩹 (исцеляющее сердце; Unicode: U+2764 U+FE0F U+200D U+1FA79), который состоит из более чем одной кодовой точки Unicode, если каретка находится в конце составного символа. Также возвращает правильный столбец с кареткой в середине графемы и для несоставных символов.

Примечание: Для проверки местоположения каретки используйте get_previous_composite_character_column(get_caret_line(), get_caret_column())


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

Возвращает локальную позицию и размер графемы в заданных line и column. Если позиция x или y возвращаемого прямоугольника равна -1, позиция находится за пределами видимой области элемента управления.

Примечание: Позиция 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 🔗

Возвращает позицию прокрутки для wrap_index из line.


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 🔗

Возвращает индекс каретки выделения в заданных line и column или -1, если его нет.

Если include_edges равно false, позиция должна быть внутри выделения, а не на каком-либо конце. Если only_selections равно false, каретки без выделения также будут учитываться.


int get_selection_column(caret_index: int = 0) const 🔗

Устарело: Use get_selection_origin_column() instead.

Возвращает исходный начальный столбец выборки.


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 🔗

Устарело: Use get_selection_origin_line() instead.

Возвращает исходную начальную строку выделения.


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_carets равен false, каретки из 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 🔗

Возвращает VScrollBar для TextEdit.


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_line и to_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 🔗

Возвращает true, если у пользователя есть текст в редакторе метода ввода (IME).


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

Вставляет новую строку с text в line.


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

Вставляет text в line и column.

Если before_selection_begin имеет значение true, то каретки и выделения, начинающиеся с line и column, будут перемещены в конец вставленного текста вместе со всеми каретками после него.

Если before_selection_end имеет значение true, то выделения, заканчивающиеся на line и column, будут расширены до конца вставленного текста. Эти параметры можно использовать для вставки текста внутри или за пределами выделений.


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() не учитывает, что курсор находится вне экрана, если он все еще находится в прокручиваемой области. Он вернет true, даже если курсор находится вне экрана, пока он соответствует собственным условиям TextEdit для видимости. Это включает использование scroll_fit_content_width и scroll_fit_content_height, которые заставляют TextEdit расширяться за пределы области просмотра.


bool is_dragging_cursor() const 🔗

Возвращает true, если пользователь перетаскивает мышь для прокрутки, выбора или перетаскивания текста.


bool is_gutter_clickable(gutter: int) const 🔗

Возвращает true, если разделительная полоса по указанному индексу является кликабельной. См. set_gutter_clickable().


bool is_gutter_drawn(gutter: int) const 🔗

Возвращает true, если желоб по указанному индексу в данный момент отрисован. См. set_gutter_draw().


bool is_gutter_overwritable(gutter: int) const 🔗

Возвращает true, если желоб по указанному индексу перезаписываемый. См. 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, если меню видимо. Используйте это вместо get_menu().visible для повышения производительности (чтобы избежать создания меню). См. get_menu().


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

Возвращает true, если мышь находится над выделением. Если sides равно true, края считаются частью выделения.


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(). Каретки, которые следует игнорировать, — это те, которые были частью удаленного текста и, скорее всего, будут объединены в конце редактирования, или каретки, которые были добавлены во время редактирования.

Рекомендуется continue в цикле, итерирующем по нескольким кареткам, если каретка должна игнорироваться.


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_down равен true, каретки переместятся на следующую строку вниз, в противном случае каретки переместятся вверх.


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

Выбирает текст из origin_line и origin_column в caret_line и caret_column для заданного caret_index. Это перемещает начало выделения и каретку. Если позиции совпадают, выделение будет отменено.

Если selection_enabled равно false, выделение не произойдет.

Примечание: При поддержке нескольких кареток проверка на перекрытие не выполняется. См. merge_overlapping_carets().


void select_all() 🔗

Выделить весь текст.

Если selection_enabled равно false, выделение не произойдет.


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_viewport равен true, область просмотра будет центрирована в позиции каретки после перемещения.

Примечание: При поддержке нескольких кареток проверка на перекрытие не выполняется. См. 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_viewport имеет значение true, область просмотра будет центрирована в позиции курсора после перемещения.

Если can_be_hidden имеет значение true, указанная line может быть скрыта.

Если wrap_index имеет значение -1, столбец курсора будет закреплен по длине line. Если wrap_index больше -1, столбец будет перемещен, чтобы попытаться сопоставить визуальную позицию x на wrap_index строки с позицией с момента последнего вызова 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) 🔗

Установите пользовательский обратный вызов отрисовки для желоба по указанному индексу. draw_callback должен принимать следующие аргументы: индекс линии int, индекс желоба int и область Rect2. Этот обратный вызов работает только в том случае, если тип желоба — GUTTER_TYPE_CUSTOM (см. set_gutter_type()).


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

Если true, то рисуется желоб по указанному индексу. Тип желоба (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) 🔗

Устанавливает тип желоба (gutter) по указанному индексу. Жёлоба могут содержать значки, текст или пользовательские визуальные эффекты.


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

Размещает wrap_index параметра line в центре области просмотра.


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

Размещает wrap_index параметра line в верхней части области просмотра.


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

Размещает wrap_index параметра line в нижней части области просмотра.


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

Если clickable равен true, делает gutter на указанной line кликабельным. Это похоже на set_gutter_clickable(), но для одной строки. Если is_gutter_clickable() равен true, это не даст никакого эффекта. Смотрите is_line_gutter_clickable() и gutter_clicked.


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

Устанавливает значок для gutter на line на icon. Это работает только в том случае, если тип желоба — GUTTER_TYPE_ICON (см. set_gutter_type()).


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

Устанавливает цвет для gutter в line на color.


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

Устанавливает метаданные для gutter в line на metadata.


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

Устанавливает текст для gutter на line на 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) 🔗

Устанавливает исходный столбец выбора в column для заданного caret_index. Если исходный столбец выбора перемещается в позицию каретки, выбор будет отменен.


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

Устанавливает исходную линию выделения на line для заданного caret_index. Если исходная линия выделения перемещается в позицию каретки, выделение будет отменено.

Если can_be_hidden равно false, строка будет установлена на ближайшую нескрытую строку ниже или выше.

Если wrap_index равно -1, столбец исходной линии выделения будет ограничен длиной line. Если wrap_index больше -1, столбец будет перемещен, чтобы попытаться сопоставить визуальную позицию x на wrap_index строки с позицией с момента последнего вызова 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_sec или нового отменяемого шага за пределами вызовов start_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) 🔗

Устанавливает фоновый цвет Color этого TextEdit.


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

Устанавливает шрифт Color, когда editable отключен.


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, чтобы контур выглядел правильно. В противном случае контур может оказаться обрезанным раньше, чем предполагалось.


int wrap_offset = 10 🔗

Sets an additional margin for line wrapping width.


Font font 🔗

Устанавливает Font по умолчанию.


int font_size 🔗

Устанавливает размер шрифта по умолчанию.


Texture2D space 🔗

Устанавливает пользовательскую Texture2D для символов пробельного текста.


Texture2D tab 🔗

Устанавливает пользовательскую Texture2D для символов текста табуляции.


StyleBox focus 🔗

Устанавливает StyleBox, когда находится в фокусе. Theme_item focus StyleBox отображается над базовым StyleBox, поэтому следует использовать частично прозрачный StyleBox, чтобы базовый StyleBox оставался видимым. StyleBox, представляющий контур или подчеркивание, хорошо подходит для этой цели. Чтобы отключить визуальный эффект фокуса, назначьте ресурс StyleBoxEmpty. Обратите внимание, что отключение визуального эффекта фокуса навредит удобству использования навигации с помощью клавиатуры/контроллера, поэтому это не рекомендуется по соображениям доступности.


StyleBox normal 🔗

Устанавливает StyleBox этого TextEdit.


StyleBox read_only 🔗

Устанавливает StyleBox этого TextEdit, когда editable отключен.