CodeEdit
Наследует: TextEdit < Control < CanvasItem < Node < Object
Многострочный текстовый редактор, предназначенный для редактирования кода.
Описание
CodeEdit — это специализированный TextEdit, разработанный для редактирования файлов с простым текстовым кодом. Он обладает множеством функций, обычно встречающихся в редакторах кода, таких как номера строк, перенос строк, автодополнение кода, управление отступами и управление строками/комментариями.
Примечание: Независимо от локали, CodeEdit по умолчанию всегда будет использовать направление текста слева направо для правильного отображения исходного кода.
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
layout_direction |
|
|
|
||
|
||
|
||
|
||
text_direction |
|
Методы
Свойства темы
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Сигналы
breakpoint_toggled(line: int) 🔗
Вызывается при добавлении или удалении точки останова из строки. Если строка удаляется с помощью backspace, сигнал выдается на старой строке.
code_completion_requested() 🔗
Выдается, когда пользователь запрашивает автодополнение кода. Этот сигнал не будет отправлен, если _request_code_completion() переопределен или code_completion_enabled равен false.
symbol_hovered(symbol: String, line: int, column: int) 🔗
Выдается, когда пользователь наводит курсор на символ. В отличие от Control.mouse_entered, этот сигнал выдается не сразу, а когда курсор находится над символом в течение ProjectSettings.gui/timers/tooltip_delay_sec секунд.
Примечание: symbol_tooltip_on_hover должен быть true для выдачи этого сигнала.
symbol_lookup(symbol: String, line: int, column: int) 🔗
Генерируется, когда пользователь нажимает на допустимый символ.
symbol_validate(symbol: String) 🔗
Вызывается, когда пользователь наводит курсор на символ. Символ должен быть проверен и на него должен быть дан ответ, вызвав set_symbol_lookup_word_as_valid().
Примечание: symbol_lookup_on_click должен быть true для выдачи этого сигнала.
Перечисления
enum CodeCompletionKind: 🔗
CodeCompletionKind KIND_CLASS = 0
Отмечает опцию как класс.
CodeCompletionKind KIND_FUNCTION = 1
Отмечает опцию как функцию.
CodeCompletionKind KIND_SIGNAL = 2
Отмечает опцию как сигнал Годо.
CodeCompletionKind KIND_VARIABLE = 3
Отмечает опцию как переменную.
CodeCompletionKind KIND_MEMBER = 4
Отмечает вариант как член.
CodeCompletionKind KIND_ENUM = 5
Отмечает параметр как запись перечисления.
CodeCompletionKind KIND_CONSTANT = 6
Отмечает опцию как константу.
CodeCompletionKind KIND_NODE_PATH = 7
Отмечает опцию как путь к узлу Godot.
CodeCompletionKind KIND_FILE_PATH = 8
Отмечает опцию как путь к файлу.
CodeCompletionKind KIND_PLAIN_TEXT = 9
Отмечает параметр как неклассифицированный или как обычный текст.
enum CodeCompletionLocation: 🔗
CodeCompletionLocation LOCATION_LOCAL = 0
Параметр является локальным по отношению к местоположению запроса на автодополнение кода - например, локальной переменной. Последующее значение местоположения представляет параметры из внешнего класса, точное значение представляет, насколько они далеки (с точки зрения внутренних классов).
CodeCompletionLocation LOCATION_PARENT_MASK = 256
Опция из содержащего класса или родительского класса относительно расположения запроса на автодополнение кода. Выполните побитовое ИЛИ с глубиной класса (например, 0 для локального класса, 1 для родительского, 2 для прародительского и т. д.), чтобы сохранить глубину опции в классе или родительском классе.
CodeCompletionLocation LOCATION_OTHER_USER_CODE = 512
Опция взята из пользовательского кода, который не является локальным и не находится в производном классе (например, Autoload Singletons).
CodeCompletionLocation LOCATION_OTHER = 1024
Опция взята из другого кода движка, не охваченного другими константами перечисления, например, встроенными классами.
Описания свойств
bool auto_brace_completion_enabled = false 🔗
Если true, использует auto_brace_completion_pairs для автоматической вставки закрывающей скобки, когда открывающая скобка вставляется при вводе или автодополнении. Также автоматически удаляет закрывающую скобку при использовании backspace на открывающей скобке.
bool auto_brace_completion_highlight_matching = false 🔗
Если true, выделяет пары фигурных скобок, когда курсор находится на одной из них, используя auto_brace_completion_pairs. Если пары совпадают, они будут подчеркнуты. Если фигурная скобка не совпадает, она окрашивается в brace_mismatch_color.
Dictionary auto_brace_completion_pairs = { "\"": "\"", "'": "'", "(": ")", "[": "]", "{": "}" } 🔗
void set_auto_brace_completion_pairs(value: Dictionary)
Dictionary get_auto_brace_completion_pairs()
Устанавливает пары фигурных скобок для автозаполнения. Для каждой записи в словаре ключом является открывающая фигурная скобка, а значением — закрывающая фигурная скобка, которая ей соответствует. Фигурная скобка — это Строка, состоящая из символов. См. auto_brace_completion_enabled и auto_brace_completion_highlight_matching.
bool code_completion_enabled = false 🔗
Если true, действие ProjectSettings.input/ui_text_completion_query запрашивает автодополнение кода. Чтобы справиться с этим, см. _request_code_completion() или code_completion_requested.
Array[String] code_completion_prefixes = [] 🔗
Устанавливает префиксы, которые будут запускать автодополнение кода.
Array[String] delimiter_comments = [] 🔗
Устанавливает разделители комментариев. Все существующие разделители комментариев будут удалены.
Array[String] delimiter_strings = ["' '", "\" \""] 🔗
Устанавливает разделители строк. Все существующие разделители строк будут удалены.
bool gutters_draw_bookmarks = false 🔗
Если true, закладки рисуются в желобе. Этот желоб используется совместно с точками останова и исполняемыми строками. См. set_line_as_bookmarked().
bool gutters_draw_breakpoints_gutter = false 🔗
Если true, точки останова рисуются в желобе. Этот желоб используется совместно с закладками и выполняемыми строками. Щелчок по желобу переключит точку останова для строки, см. set_line_as_breakpoint().
bool gutters_draw_executing_lines = false 🔗
Если true, то исполняемые строки отмечаются в желобе. Этот желоб используется совместно с точками останова и закладками. См. set_line_as_executing().
bool gutters_draw_fold_gutter = false 🔗
Если true, рисуется желоб сгиба. В этом желобе значок can_fold_code_region рисуется для каждой сгибаемой линии (см. can_fold_line()), а значок folded_code_region рисуется для каждой сгибаемой линии (см. is_line_folded()). Эти значки можно щелкнуть, чтобы переключить состояние сгиба, см. toggle_foldable_line(). line_folding должен быть true для отображения значков.
bool gutters_draw_line_numbers = false 🔗
Если true, рисуется разделитель номеров строк. Номера строк начинаются с 1 и увеличиваются для каждой строки текста. Щелчок и перетаскивание разделителя номеров строк выделит целые строки текста.
int gutters_line_numbers_min_digits = 3 🔗
Минимальная ширина в цифрах, зарезервированная для промежутка между номерами строк.
bool gutters_zero_pad_line_numbers = false 🔗
Если true, номера строк, нарисованные в желобе, дополняются нулями на основе общего количества строк. Требует, чтобы gutters_draw_line_numbers был установлен на true.
bool indent_automatic = false 🔗
Если true, дополнительный отступ автоматически вставляется при добавлении новой строки и нахождении префикса в indent_automatic_prefixes. Если найден открывающий ключ пары фигурных скобок, соответствующая закрывающая фигурная скобка будет перемещена на другую новую строку (см. auto_brace_completion_pairs).
Array[String] indent_automatic_prefixes = [":", "{", "[", "("] 🔗
Префиксы для автоматического отступа. Используется, когда indent_automatic установлен в true.
Размер отступа табуляции (одно нажатие Tab) в символах. Если включено indent_use_spaces, то количество используемых пробелов.
bool indent_use_spaces = false 🔗
Для отступов используйте пробелы вместо табуляции.
Если true, линии могут быть свернуты. В противном случае методы сворачивания линий, такие как fold_line(), не будут работать, а can_fold_line() всегда будет возвращать false. См. gutters_draw_fold_gutter.
Array[int] line_length_guidelines = [] 🔗
Рисует вертикальные линии в предоставленных столбцах. Первая запись считается основной жесткой направляющей и рисуется более заметно.
bool symbol_lookup_on_click = false 🔗
Устанавливается при щелчке по проверенному слову из symbol_validate, должен быть выдан symbol_lookup.
bool symbol_tooltip_on_hover = false 🔗
Если true, то при наведении курсора на слово подается сигнал symbol_hovered.
Описания метода
void _confirm_code_completion(replace: bool) virtual 🔗
Переопределить этот метод, чтобы определить, как следует вставлять выбранную запись. Если replace равен true, любой существующий текст должен быть заменен.
Array[Dictionary] _filter_code_completion_candidates(candidates: Array[Dictionary]) virtual const 🔗
Переопределите этот метод, чтобы определить, какие элементы в candidates должны отображаться.
Как candidates, так и возвращаемый объект представляют собой Array из Dictionary. Содержимое Dictionary см. в get_code_completion_option().
void _request_code_completion(force: bool) virtual 🔗
Переопределите этот метод, чтобы определить, что произойдет, когда пользователь запрашивает завершение кода. Если force равен true, любые проверки следует обойти.
void add_auto_brace_completion_pair(start_key: String, end_key: String) 🔗
Добавляет пару скобок.
Начальный и конечный ключи должны быть символами. Только начальный ключ должен быть уникальным.
void add_code_completion_option(type: CodeCompletionKind, display_text: String, insert_text: String, text_color: Color = Color(1, 1, 1, 1), icon: Resource = null, value: Variant = null, location: int = 1024) 🔗
Отправляет элемент в очередь потенциальных кандидатов для меню автозаполнения. Вызовите update_code_completion_options(), чтобы обновить список.
location указывает расположение параметра относительно местоположения запроса на завершение кода. См. CodeCompletionLocation, чтобы узнать, как задать это значение.
Примечание: Этот список заменит всех текущих кандидатов.
void add_comment_delimiter(start_key: String, end_key: String, line_only: bool = false) 🔗
Добавляет разделитель комментариев от start_key до end_key. Оба ключа должны быть символами, и start_key не должен использоваться совместно с другими разделителями.
Если line_only — это true или end_key — это пустая String, область не переносится на следующую строку.
void add_string_delimiter(start_key: String, end_key: String, line_only: bool = false) 🔗
Определяет разделитель строк от start_key до end_key. Оба ключа должны быть символами, и start_key не должен использоваться совместно с другими разделителями.
Если line_only — true, или end_key — это пустая String, область не переносится на следующую строку.
bool can_fold_line(line: int) const 🔗
Возвращает true, если заданная строка является сворачиваемой. Строка является сворачиваемой, если она является началом допустимой области кода (см. get_code_region_start_tag()), если она является началом комментария или блока строки, или если следующая непустая строка имеет больший отступ (см. TextEdit.get_indent_level()).
void cancel_code_completion() 🔗
Отменяет меню автозаполнения.
void clear_bookmarked_lines() 🔗
Очищает все отмеченные строки.
void clear_breakpointed_lines() 🔗
Очистить все линии точек останова.
void clear_comment_delimiters() 🔗
Удаляет все разделители комментариев.
void clear_executing_lines() 🔗
Очищает все выполненные строки.
void clear_string_delimiters() 🔗
Удаляет все разделители строк.
void confirm_code_completion(replace: bool = false) 🔗
Вставляет выбранную запись в текст. Если replace равен true, любой существующий текст заменяется, а не объединяется.
void convert_indent(from_line: int = -1, to_line: int = -1) 🔗
Преобразует отступы строк между from_line и to_line в табуляции или пробелы, как установлено indent_use_spaces.
Значения -1 преобразуют весь текст.
void create_code_region() 🔗
Создает новую область кода с выбранным фрагментом. Необходимо определить хотя бы один разделитель комментариев в одну строку (см. add_comment_delimiter()).
Область кода — это часть кода, которая выделяется при сворачивании и может помочь организовать ваш скрипт.
Начальные и конечные теги области кода можно настроить (см. set_code_region_tags()).
Области кода разделяются с помощью начальных и конечных тегов (соответственно region и endregion по умолчанию), которым предшествует разделитель комментариев в одну строку. (например, #region и #endregion)
void delete_lines() 🔗
Удаляет все выделенные строки или строки, на которых установлен курсор.
void do_indent() 🔗
Если выделения нет, отступ вставляется в каретку. В противном случае выбранные строки отступают как indent_lines(). Эквивалентно действию ProjectSettings.input/ui_text_indent. Используемые символы отступа зависят от indent_use_spaces и indent_size.
void duplicate_lines() 🔗
Дублирует все строки, выбранные в данный момент с любым курсором. Дублирует всю строку под текущей, независимо от того, где в строке находится курсор.
void duplicate_selection() 🔗
Дублирует весь выделенный текст и все строки, на которых установлен курсор.
void fold_all_lines() 🔗
Складывает все линии, которые можно сложить (см. can_fold_line()).
Складывает заданную строку, если это возможно (см. can_fold_line()).
String get_auto_brace_completion_close_key(open_key: String) const 🔗
Получает соответствующий ключ закрытия автоматической скобки для open_key.
PackedInt32Array get_bookmarked_lines() const 🔗
Получает все отмеченные закладками строки.
PackedInt32Array get_breakpointed_lines() const 🔗
Получает все контрольные точки строк.
Dictionary get_code_completion_option(index: int) const 🔗
Получает параметр завершения в index. Возвращаемый Словарь имеет следующие ключевые значения:
kind: CodeCompletionKind
display_text: Текст, отображаемый в меню автозаполнения.
insert_text: Текст, который должен быть вставлен при выборе этого элемента.
font_color: Цвет текста в меню автозаполнения.
icon: Значок для рисования в меню автозаполнения.
default_value: Значение символа.
Array[Dictionary] get_code_completion_options() const 🔗
Получает все параметры завершения, см. get_code_completion_option() для получения информации о возвращаемом содержимом.
int get_code_completion_selected_index() const 🔗
Получает индекс текущего выбранного варианта завершения.
String get_code_region_end_tag() const 🔗
Возвращает конечный тег региона кода (без разделителя комментариев).
String get_code_region_start_tag() const 🔗
Возвращает начальный тег региона кода (без разделителя комментариев).
String get_delimiter_end_key(delimiter_index: int) const 🔗
Получает конечный ключ для индекса строки или области комментариев.
Vector2 get_delimiter_end_position(line: int, column: int) const 🔗
Если line column находится в строке или комментарии, возвращает конечную позицию региона. Если нет или конец не найден, оба значения Vector2 будут -1.
String get_delimiter_start_key(delimiter_index: int) const 🔗
Получает начальный ключ для индекса строки или области комментариев.
Vector2 get_delimiter_start_position(line: int, column: int) const 🔗
Если line column находится в строке или комментарии, возвращает начальную позицию региона. Если нет или начало не найдено, оба значения Vector2 будут -1.
PackedInt32Array get_executing_lines() const 🔗
Получает все исполняемые строки.
Array[int] get_folded_lines() const 🔗
Возвращает все строки, которые в данный момент свернуты.
String get_text_for_code_completion() const 🔗
Возвращает полный текст с символом 0xFFFF в позиции курсора.
String get_text_for_symbol_lookup() const 🔗
Возвращает полный текст с символом 0xFFFF в позиции курсора.
String get_text_with_cursor_char(line: int, column: int) const 🔗
Возвращает полный текст с символом 0xFFFF в указанном месте.
bool has_auto_brace_completion_close_key(close_key: String) const 🔗
Возвращает true, если существует ключ закрытия close_key.
bool has_auto_brace_completion_open_key(open_key: String) const 🔗
Возвращает true, если существует открытый ключ open_key.
bool has_comment_delimiter(start_key: String) const 🔗
Возвращает true, если существует комментарий start_key.
bool has_string_delimiter(start_key: String) const 🔗
Возвращает true, если строка start_key существует.
void indent_lines() 🔗
Делает отступы во всех строках, которые выбраны или на которых есть курсор. Использует пробелы или табуляцию в зависимости от indent_use_spaces. См. unindent_lines().
int is_in_comment(line: int, column: int = -1) const 🔗
Возвращает индекс разделителя, если line column находится в комментарии. Если column не указан, вернет индекс разделителя, если вся line является комментарием. В противном случае -1.
int is_in_string(line: int, column: int = -1) const 🔗
Возвращает индекс разделителя, если line column находится в строке. Если column не указан, вернет индекс разделителя, если вся line является строкой. В противном случае -1.
bool is_line_bookmarked(line: int) const 🔗
Возвращает true, если данная строка добавлена в закладки. См. set_line_as_bookmarked().
bool is_line_breakpointed(line: int) const 🔗
Возвращает true, если заданная строка имеет точку останова. См. set_line_as_breakpoint().
bool is_line_code_region_end(line: int) const 🔗
Возвращает true, если заданная строка является концом области кода. См. set_code_region_tags().
bool is_line_code_region_start(line: int) const 🔗
Возвращает true, если заданная строка является началом области кода. См. set_code_region_tags().
bool is_line_executing(line: int) const 🔗
Возвращает true, если заданная строка отмечена как исполняемая. См. set_line_as_executing().
bool is_line_folded(line: int) const 🔗
Возвращает true, если заданная строка свернута. См. fold_line().
void move_lines_down() 🔗
Перемещает вниз все выделенные или имеющие курсор строки.
void move_lines_up() 🔗
Перемещает вверх все выделенные или отмеченные курсором строки.
void remove_comment_delimiter(start_key: String) 🔗
Удаляет разделитель комментариев с помощью start_key.
void remove_string_delimiter(start_key: String) 🔗
Удаляет разделитель строки с помощью start_key.
void request_code_completion(force: bool = false) 🔗
Выдает code_completion_requested, если force равен true, то все проверки будут пропущены. В противном случае будет проверяться, находится ли каретка в слове или перед префиксом. Будет игнорировать запрос, если все текущие параметры имеют тип file path, node path или signal.
void set_code_completion_selected_index(index: int) 🔗
Устанавливает текущий выбранный вариант завершения.
void set_code_hint(code_hint: String) 🔗
Задает текст подсказки кода. Передайте пустую строку для очистки.
void set_code_hint_draw_below(draw_below: bool) 🔗
Если true, подсказка кода будет нарисована под основным курсором. Если false, подсказка кода будет нарисована над основным курсором. См. set_code_hint().
void set_code_region_tags(start: String = "region", end: String = "endregion") 🔗
Устанавливает начальный и конечный теги области кода (без разделителя комментариев).
void set_line_as_bookmarked(line: int, bookmarked: bool) 🔗
Устанавливает заданную строку как закладку. Если true и gutters_draw_bookmarks равно true, рисует значок bookmark в желобе для этой строки. См. get_bookmarked_lines() и is_line_bookmarked().
void set_line_as_breakpoint(line: int, breakpointed: bool) 🔗
Устанавливает заданную строку как точку останова. Если true и gutters_draw_breakpoints_gutter равно true, рисует значок breakpoint в желобе для этой строки. См. get_breakpointed_lines() и is_line_breakpointed().
void set_line_as_executing(line: int, executing: bool) 🔗
Устанавливает заданную строку как исполняемую. Если true и gutters_draw_executing_lines равно true, рисует значок executing_line в желобе для этой строки. См. get_executing_lines() и is_line_executing().
void set_symbol_lookup_word_as_valid(valid: bool) 🔗
Устанавливает символ, выданный symbol_validate, как допустимый поиск.
void toggle_foldable_line(line: int) 🔗
Переключить сворачивание блока кода на указанной строке.
void toggle_foldable_lines_at_carets() 🔗
Включает/выключает сворачивание блока кода на всех строках, на которых установлена каретка.
void unfold_all_lines() 🔗
Разворачивает все сложенные строки.
Разворачивает заданную линию, если она сложена или скрыта под сложенной линией.
void unindent_lines() 🔗
Удаляет отступы всех выбранных или отмеченных курсором строк. Использует пробелы или табуляцию в зависимости от indent_use_spaces. Эквивалентно действию ProjectSettings.input/ui_text_dedent. См. indent_lines().
void update_code_completion_options(force: bool) 🔗
Отправляет все варианты завершения, добавленные с помощью add_code_completion_option(). Попытается принудительно открыть меню автозаполнения, если force равен true.
Примечание: Это заменит всех текущих кандидатов.
Описания свойств темы
Color bookmark_color = Color(0.5, 0.64, 1, 0.8) 🔗
Color значка закладки для строк, отмеченных закладками.
Color brace_mismatch_color = Color(1, 0.2, 0.2, 1) 🔗
Color текста для выделения несовпадающих скобок.
Color breakpoint_color = Color(0.9, 0.29, 0.3, 1) 🔗
Color значка точки останова для строк, отмеченных закладками.
Color code_folding_color = Color(0.8, 0.8, 0.8, 0.8) 🔗
Color для всех значков, связанных с переносом строк.
Color completion_background_color = Color(0.17, 0.16, 0.2, 1) 🔗
Устанавливает фон Color для всплывающего окна автодополнения кода.
Color completion_existing_color = Color(0.87, 0.87, 0.87, 0.13) 🔗
Подсветка фона Цвет для сопоставления текста в параметрах автодополнения кода.
Color completion_scroll_color = Color(1, 1, 1, 0.29) 🔗
Цвет полосы прокрутки во всплывающем окне автодополнения кода.
Color completion_scroll_hovered_color = Color(1, 1, 1, 0.4) 🔗
Цвет полосы прокрутки во всплывающем окне автодополнения кода при наведении курсора.
Color completion_selected_color = Color(0.26, 0.26, 0.27, 1) 🔗
Подсветка фона Цвет для текущего выбранного элемента опции во всплывающем окне автодополнения кода.
Color executing_line_color = Color(0.98, 0.89, 0.27, 1) 🔗
Цвет значка выполнения для выполнения линий.
Color folded_code_region_color = Color(0.68, 0.46, 0.77, 0.2) 🔗
Цвет подсветки фоновой линии для области свернутого кода.
Color line_length_guideline_color = Color(0.3, 0.5, 0.8, 0.1) 🔗
Цвет основной направляющей длины линии, для второстепенных направляющих будет применено значение альфа 50%.
Color line_number_color = Color(0.67, 0.67, 0.67, 0.4) 🔗
Устанавливает Цвет номеров строк.
Максимальное количество вариантов, отображаемых во всплывающем окне автодополнения кода одновременно.
int completion_max_width = 50 🔗
Максимальная ширина опций во всплывающем окне автодополнения кода. Опции длиннее будут обрезаны.
int completion_scroll_width = 6 🔗
Ширина полосы прокрутки во всплывающем окне автодополнения кода.
Устанавливает пользовательскую Texture2D для рисования в области закладок для строк, отмеченных закладками.
Устанавливает пользовательскую Texture2D для рисования в контрольных точек области для контрольных точек линий.
Устанавливает пользовательскую Texture2D для рисования в области сгиба линии, когда линию можно согнуть.
Texture2D can_fold_code_region 🔗
Устанавливает пользовательскую Texture2D для отрисовки в области сгиба строк, когда область кода может быть свернута.
Texture2D completion_color_bg 🔗
Фоновая панель для окна предварительного просмотра цвета в автодополнении (видима, когда цвет полупрозрачен).
Значок для рисования в области выполнения линий выполнения.
Устанавливает пользовательскую Texture2D для отрисовки в области сгиба линии, когда линия сложена и может быть развернута.
Texture2D folded_code_region 🔗
Устанавливает пользовательскую Texture2D для отрисовки в области сгиба строк, когда область кода свернута и может быть развернута.
Устанавливает пользовательскую Texture2D для рисования в конце сложенной линии.
StyleBox для всплывающего окна автодополнения кода.