Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
TextEdit¶
Inherits: Control < CanvasItem < Node < Object
Inherited By: CodeEdit
A multiline text editor.
描述¶
A multiline text editor. It also has limited facilities for editing code, such as syntax highlighting support. For more advanced facilities for editing code, see CodeEdit.
Note: Most viewport, caret and edit methods contain a caret_index
argument for caret_multiple support. The argument should be one of the following: -1
for all carets, 0
for the main caret, or greater than 0
for secondary carets.
Note: When holding down Alt, the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor.
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
mouse_default_cursor_shape |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Methods¶
void |
_backspace ( int caret_index ) virtual |
void |
|
void |
|
void |
_handle_unicode_input ( int unicode_char, int caret_index ) virtual |
void |
|
void |
_paste_primary_clipboard ( int caret_index ) virtual |
void |
add_caret_at_carets ( bool below ) |
void |
add_gutter ( int at=-1 ) |
void |
|
void |
adjust_carets_after_edit ( int caret, int from_line, int from_col, int to_line, int to_col ) |
void |
adjust_viewport_to_caret ( int caret_index=0 ) |
void |
|
void |
|
void |
center_viewport_to_caret ( int caret_index=0 ) |
void |
clear ( ) |
void |
|
void |
|
void |
|
void |
delete_selection ( int caret_index=-1 ) |
void |
|
void |
end_action ( ) |
void |
|
get_caret_column ( int caret_index=0 ) const |
|
get_caret_count ( ) const |
|
get_caret_draw_pos ( int caret_index=0 ) const |
|
get_caret_line ( int caret_index=0 ) const |
|
get_caret_wrap_index ( int caret_index=0 ) const |
|
get_first_non_whitespace_column ( int line ) const |
|
get_first_visible_line ( ) const |
|
get_gutter_count ( ) const |
|
get_gutter_name ( int gutter ) const |
|
get_gutter_type ( int gutter ) const |
|
get_gutter_width ( int gutter ) const |
|
get_h_scroll_bar ( ) const |
|
get_indent_level ( int line ) const |
|
get_last_full_visible_line ( ) const |
|
get_last_full_visible_line_wrap_index ( ) const |
|
get_last_unhidden_line ( ) const |
|
get_line_background_color ( int line ) const |
|
get_line_column_at_pos ( Vector2i position, bool allow_out_of_bounds=true ) const |
|
get_line_count ( ) const |
|
get_line_gutter_icon ( int line, int gutter ) const |
|
get_line_gutter_item_color ( int line, int gutter ) const |
|
get_line_gutter_metadata ( int line, int gutter ) const |
|
get_line_gutter_text ( int line, int gutter ) const |
|
get_line_height ( ) const |
|
get_line_width ( int line, int wrap_index=-1 ) const |
|
get_line_wrap_count ( int line ) const |
|
get_line_wrap_index_at_column ( int line, int column ) const |
|
get_line_wrapped_text ( int line ) const |
|
get_local_mouse_pos ( ) const |
|
get_menu ( ) const |
|
get_minimap_line_at_pos ( Vector2i position ) const |
|
get_minimap_visible_lines ( ) const |
|
get_next_visible_line_index_offset_from ( int line, int wrap_index, int visible_amount ) const |
|
get_next_visible_line_offset_from ( int line, int visible_amount ) const |
|
get_pos_at_line_column ( int line, int column ) const |
|
get_rect_at_line_column ( int line, int column ) const |
|
get_saved_version ( ) const |
|
get_scroll_pos_for_line ( int line, int wrap_index=0 ) const |
|
get_selected_text ( int caret_index=-1 ) |
|
get_selection_column ( int caret_index=0 ) const |
|
get_selection_from_column ( int caret_index=0 ) const |
|
get_selection_from_line ( int caret_index=0 ) const |
|
get_selection_line ( int caret_index=0 ) const |
|
get_selection_mode ( ) const |
|
get_selection_to_column ( int caret_index=0 ) const |
|
get_selection_to_line ( int caret_index=0 ) const |
|
get_tab_size ( ) const |
|
get_total_gutter_width ( ) const |
|
get_total_visible_line_count ( ) const |
|
get_v_scroll_bar ( ) const |
|
get_version ( ) const |
|
get_visible_line_count ( ) const |
|
get_visible_line_count_in_range ( int from_line, int to_line ) const |
|
get_word_at_pos ( Vector2 position ) const |
|
get_word_under_caret ( int caret_index=-1 ) const |
|
has_ime_text ( ) const |
|
has_redo ( ) const |
|
has_selection ( int caret_index=-1 ) const |
|
has_undo ( ) const |
|
void |
insert_line_at ( int line, String text ) |
void |
insert_text_at_caret ( String text, int caret_index=-1 ) |
is_caret_visible ( int caret_index=0 ) const |
|
is_dragging_cursor ( ) const |
|
is_gutter_clickable ( int gutter ) const |
|
is_gutter_drawn ( int gutter ) const |
|
is_gutter_overwritable ( int gutter ) const |
|
is_line_gutter_clickable ( int line, int gutter ) const |
|
is_line_wrapped ( int line ) const |
|
is_menu_visible ( ) const |
|
is_mouse_over_selection ( bool edges, int caret_index=-1 ) const |
|
is_overtype_mode_enabled ( ) const |
|
void |
menu_option ( int option ) |
void |
merge_gutters ( int from_line, int to_line ) |
void |
|
void |
|
void |
paste_primary_clipboard ( int caret_index=-1 ) |
void |
redo ( ) |
void |
remove_caret ( int caret ) |
void |
remove_gutter ( int gutter ) |
void |
|
void |
remove_text ( int from_line, int from_column, int to_line, int to_column ) |
search ( String text, int flags, int from_line, int from_colum ) const |
|
void |
select ( int from_line, int from_column, int to_line, int to_column, int caret_index=0 ) |
void |
select_all ( ) |
void |
select_word_under_caret ( int caret_index=-1 ) |
void |
set_caret_column ( int column, bool adjust_viewport=true, int caret_index=0 ) |
void |
set_caret_line ( int line, bool adjust_viewport=true, bool can_be_hidden=true, int wrap_index=0, int caret_index=0 ) |
void |
set_gutter_clickable ( int gutter, bool clickable ) |
void |
set_gutter_custom_draw ( int column, Callable draw_callback ) |
void |
set_gutter_draw ( int gutter, bool draw ) |
void |
set_gutter_name ( int gutter, String name ) |
void |
set_gutter_overwritable ( int gutter, bool overwritable ) |
void |
set_gutter_type ( int gutter, GutterType type ) |
void |
set_gutter_width ( int gutter, int width ) |
void |
|
void |
set_line_as_center_visible ( int line, int wrap_index=0 ) |
void |
set_line_as_first_visible ( int line, int wrap_index=0 ) |
void |
set_line_as_last_visible ( int line, int wrap_index=0 ) |
void |
set_line_background_color ( int line, Color color ) |
void |
set_line_gutter_clickable ( int line, int gutter, bool clickable ) |
void |
set_line_gutter_icon ( int line, int gutter, Texture2D icon ) |
void |
set_line_gutter_item_color ( int line, int gutter, Color color ) |
void |
set_line_gutter_metadata ( int line, int gutter, Variant metadata ) |
void |
set_line_gutter_text ( int line, int gutter, String text ) |
void |
set_overtype_mode_enabled ( bool enabled ) |
void |
set_search_flags ( int flags ) |
void |
set_search_text ( String search_text ) |
void |
set_selection_mode ( SelectionMode mode, int line=-1, int column=-1, int caret_index=0 ) |
void |
set_tab_size ( int size ) |
void |
set_tooltip_request_func ( Callable callback ) |
void |
start_action ( EditAction action ) |
void |
swap_lines ( int from_line, int to_line ) |
void |
|
void |
undo ( ) |
Theme Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
信号¶
caret_changed ( )
Emitted when the caret changes position.
gutter_added ( )
Emitted when a gutter is added.
gutter_clicked ( int line, int gutter )
Emitted when a gutter is clicked.
gutter_removed ( )
Emitted when a gutter is removed.
lines_edited_from ( int from_line, int to_line )
Emitted immediately when the text changes.
When text is added from_line
will be less than to_line
. On a remove to_line
will be less than from_line
.
text_changed ( )
Emitted when the text changes.
text_set ( )
Enumerations¶
Cuts (copies and clears) the selected text.
Copies the selected text.
Pastes the clipboard text over the selected text (or at the cursor's position).
Erases the whole TextEdit text.
Selects the whole TextEdit text.
Undoes the previous action.
Redoes the previous action.
ID of "Text Writing Direction" submenu.
Sets text direction to inherited.
Sets text direction to automatic.
Sets text direction to left-to-right.
Sets text direction to right-to-left.
Toggles control character display.
ID of "Insert Control Character" submenu.
Inserts left-to-right mark (LRM) character.
Inserts right-to-left mark (RLM) character.
Inserts start of left-to-right embedding (LRE) character.
Inserts start of right-to-left embedding (RLE) character.
Inserts start of left-to-right override (LRO) character.
Inserts start of right-to-left override (RLO) character.
Inserts pop direction formatting (PDF) character.
Inserts Arabic letter mark (ALM) character.
Inserts left-to-right isolate (LRI) character.
Inserts right-to-left isolate (RLI) character.
Inserts first strong isolate (FSI) character.
Inserts pop direction isolate (PDI) character.
Inserts zero width joiner (ZWJ) character.
Inserts zero width non-joiner (ZWNJ) character.
Inserts word joiner (WJ) character.
Inserts soft hyphen (SHY) character.
Represents the size of the MenuItems enum.
enum EditAction:
EditAction ACTION_NONE = 0
No current action.
EditAction ACTION_TYPING = 1
A typing action.
EditAction ACTION_BACKSPACE = 2
A backwards delete action.
EditAction ACTION_DELETE = 3
A forward delete action.
enum SearchFlags:
SearchFlags SEARCH_MATCH_CASE = 1
Match case when searching.
SearchFlags SEARCH_WHOLE_WORDS = 2
Match whole words when searching.
SearchFlags SEARCH_BACKWARDS = 4
Search from end to beginning.
enum CaretType:
CaretType CARET_TYPE_LINE = 0
Vertical line caret.
CaretType CARET_TYPE_BLOCK = 1
Block caret.
enum SelectionMode:
SelectionMode SELECTION_MODE_NONE = 0
Not selecting.
SelectionMode SELECTION_MODE_SHIFT = 1
Select as if shift
is pressed.
SelectionMode SELECTION_MODE_POINTER = 2
Select single characters as if the user single clicked.
SelectionMode SELECTION_MODE_WORD = 3
Select whole words as if the user double clicked.
SelectionMode SELECTION_MODE_LINE = 4
Select whole lines as if the user triple clicked.
enum LineWrappingMode:
LineWrappingMode LINE_WRAPPING_NONE = 0
Line wrapping is disabled.
LineWrappingMode LINE_WRAPPING_BOUNDARY = 1
Line wrapping occurs at the control boundary, beyond what would normally be visible.
enum GutterType:
GutterType GUTTER_TYPE_STRING = 0
Draw a string.
GutterType GUTTER_TYPE_ICON = 1
Draw an icon.
GutterType GUTTER_TYPE_CUSTOM = 2
Custom draw.
Property Descriptions¶
AutowrapMode autowrap_mode = 3
void set_autowrap_mode ( AutowrapMode value )
AutowrapMode get_autowrap_mode ( )
If wrap_mode is set to LINE_WRAPPING_BOUNDARY, sets text wrapping mode. To see how each mode behaves, see AutowrapMode.
bool caret_blink = false
If true
, makes the caret blink.
float caret_blink_interval = 0.65
The interval at which the caret blinks (in seconds).
bool caret_draw_when_editable_disabled = false
void set_draw_caret_when_editable_disabled ( bool value )
bool is_drawing_caret_when_editable_disabled ( )
If true
, caret will be visible when editable is disabled.
bool caret_mid_grapheme = false
Allow moving caret, selecting and removing the individual composite character components.
Note: Backspace is always removing individual composite character components.
bool caret_move_on_right_click = true
void set_move_caret_on_right_click_enabled ( bool value )
bool is_move_caret_on_right_click_enabled ( )
If true
, a right-click moves the caret at the mouse position before displaying the context menu.
If false
, the context menu disregards mouse location.
bool caret_multiple = true
Sets if multiple carets are allowed.
CaretType caret_type = 0
Set the type of caret to draw.
If true
, a right-click displays the context menu.
bool deselect_on_focus_loss_enabled = true
If true
, the selected text will be deselected when focus is lost.
bool drag_and_drop_selection_enabled = true
If true
, allow drag and drop of selected text.
bool draw_control_chars = false
If true
, control characters are displayed.
bool draw_spaces = false
If true
, the "space" character will have a visible representation.
bool draw_tabs = false
If true
, the "tab" character will have a visible representation.
bool editable = true
If false
, existing text cannot be modified and new text cannot be added.
bool highlight_all_occurrences = false
If true
, all occurrences of the selected text will be highlighted.
bool highlight_current_line = false
If true
, the line containing the cursor is highlighted.
String language = ""
Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
bool middle_mouse_paste_enabled = true
If false
, using middle mouse button to paste clipboard will be disabled.
Note: This method is only implemented on Linux.
bool minimap_draw = false
If true
, a minimap is shown, providing an outline of your source code.
int minimap_width = 80
The width, in pixels, of the minimap.
String placeholder_text = ""
Text shown when the TextEdit is empty. It is not the TextEdit's default value (see text).
bool scroll_fit_content_height = false
If true
, TextEdit will disable vertical scroll and fit minimum height to the number of visible lines.
int scroll_horizontal = 0
If there is a horizontal scrollbar, this determines the current horizontal scroll value in pixels.
bool scroll_past_end_of_file = false
Allow scrolling past the last line into "virtual" space.
bool scroll_smooth = false
Scroll smoothly over the text rather then jumping to the next location.
float scroll_v_scroll_speed = 80.0
Sets the scroll speed with the minimap or when scroll_smooth is enabled.
float scroll_vertical = 0.0
If there is a vertical scrollbar, this determines the current vertical scroll value in line numbers, starting at 0 for the top line.
bool selecting_enabled = true
If true
, text can be selected.
If false
, text can not be selected by the user or by the select or select_all methods.
bool shortcut_keys_enabled = true
If true
, shortcut keys for context menu items are enabled, even if the context menu is disabled.
StructuredTextParser structured_text_bidi_override = 0
void set_structured_text_bidi_override ( StructuredTextParser value )
StructuredTextParser get_structured_text_bidi_override ( )
Set BiDi algorithm override for the structured text.
Array structured_text_bidi_override_options = []
void set_structured_text_bidi_override_options ( Array value )
Array get_structured_text_bidi_override_options ( )
Set additional options for BiDi override.
SyntaxHighlighter syntax_highlighter
void set_syntax_highlighter ( SyntaxHighlighter value )
SyntaxHighlighter get_syntax_highlighter ( )
Sets the SyntaxHighlighter to use.
String text = ""
String value of the TextEdit.
TextDirection text_direction = 0
void set_text_direction ( TextDirection value )
TextDirection get_text_direction ( )
Base text writing direction.
bool virtual_keyboard_enabled = true
If true
, the native virtual keyboard is shown when focused on platforms that support it.
LineWrappingMode wrap_mode = 0
void set_line_wrapping_mode ( LineWrappingMode value )
LineWrappingMode get_line_wrapping_mode ( )
Sets the line wrapping mode to use.
Method Descriptions¶
void _backspace ( int caret_index ) virtual
Override this method to define what happens when the user presses the backspace key.
void _copy ( int caret_index ) virtual
Override this method to define what happens when the user performs a copy operation.
void _cut ( int caret_index ) virtual
Override this method to define what happens when the user performs a cut operation.
void _handle_unicode_input ( int unicode_char, int caret_index ) virtual
Override this method to define what happens when the user types in the provided key unicode_char
.
void _paste ( int caret_index ) virtual
Override this method to define what happens when the user performs a paste operation.
void _paste_primary_clipboard ( int caret_index ) virtual
Override this method to define what happens when the user performs a paste operation with middle mouse button.
Note: This method is only implemented on Linux.
int add_caret ( int line, int col )
Adds a new caret at the given location. Returns the index of the new caret, or -1
if the location is invalid.
void add_caret_at_carets ( bool below )
Adds an additional caret above or below every caret. If below
is true the new caret will be added below and above otherwise.
void add_gutter ( int at=-1 )
Register a new gutter to this TextEdit. Use at
to have a specific gutter order. A value of -1
appends the gutter to the right.
void add_selection_for_next_occurrence ( )
Adds a selection and a caret for the next occurrence of the current selection. If there is no active selection, selects word under caret.
void adjust_carets_after_edit ( int caret, int from_line, int from_col, int to_line, int to_col )
Reposition the carets affected by the edit. This assumes edits are applied in edit order, see get_caret_index_edit_order.
void adjust_viewport_to_caret ( int caret_index=0 )
Adjust the viewport so the caret is visible.
void backspace ( int caret_index=-1 )
Called when the user presses the backspace key. Can be overridden with _backspace.
void begin_complex_operation ( )
Starts a multipart edit. All edits will be treated as one action until end_complex_operation is called.
void center_viewport_to_caret ( int caret_index=0 )
Centers the viewport on the line the editing caret is at. This also resets the scroll_horizontal value to 0
.
void clear ( )
Performs a full reset of TextEdit, including undo history.
void clear_undo_history ( )
Clears the undo history.
void copy ( int caret_index=-1 )
Copies the current text selection. Can be overridden with _copy.
void cut ( int caret_index=-1 )
Cut's the current selection. Can be overridden with _cut.
void delete_selection ( int caret_index=-1 )
Deletes the selected text.
void deselect ( int caret_index=-1 )
Deselects the current selection.
void end_action ( )
Marks the end of steps in the current action started with start_action.
void end_complex_operation ( )
Ends a multipart edit, started with begin_complex_operation. If called outside a complex operation, the current operation is pushed onto the undo/redo stack.
int get_caret_column ( int caret_index=0 ) const
Returns the column the editing caret is at.
int get_caret_count ( ) const
Returns the number of carets in this TextEdit.
Vector2 get_caret_draw_pos ( int caret_index=0 ) const
Returns the caret pixel draw position.
PackedInt32Array get_caret_index_edit_order ( )
Returns a list of caret indexes in their edit order, this done from bottom to top. Edit order refers to the way actions such as insert_text_at_caret are applied.
int get_caret_line ( int caret_index=0 ) const
Returns the line the editing caret is on.
int get_caret_wrap_index ( int caret_index=0 ) const
Returns the wrap index the editing caret is on.
int get_first_non_whitespace_column ( int line ) const
Returns the first column containing a non-whitespace character.
int get_first_visible_line ( ) const
Returns the first visible line.
int get_gutter_count ( ) const
Returns the number of gutters registered.
String get_gutter_name ( int gutter ) const
Returns the name of the gutter at the given index.
GutterType get_gutter_type ( int gutter ) const
Returns the type of the gutter at the given index.
int get_gutter_width ( int gutter ) const
Returns the width of the gutter at the given index.
HScrollBar get_h_scroll_bar ( ) const
Returns the HScrollBar used by TextEdit.
int get_indent_level ( int line ) const
Returns the number of spaces and tab * tab_size
before the first char.
int get_last_full_visible_line ( ) const
Returns the last visible line. Use get_last_full_visible_line_wrap_index for the wrap index.
int get_last_full_visible_line_wrap_index ( ) const
Returns the last visible wrap index of the last visible line.
Returns the last unhidden line in the entire TextEdit.
String get_line ( int line ) const
Returns the text of a specific line.
Color get_line_background_color ( int line ) const
Returns the current background color of the line. Color(0, 0, 0, 0)
is returned if no color is set.
Vector2i get_line_column_at_pos ( Vector2i position, bool allow_out_of_bounds=true ) const
Returns the line and column at the given position. In the returned vector, x
is the column, y
is the line. If allow_out_of_bounds
is false
and the position is not over the text, both vector values will be set to -1
.
int get_line_count ( ) const
Returns the number of lines in the text.
Texture2D get_line_gutter_icon ( int line, int gutter ) const
Returns the icon currently in gutter
at line
.
Color get_line_gutter_item_color ( int line, int gutter ) const
Returns the color currently in gutter
at line
.
Variant get_line_gutter_metadata ( int line, int gutter ) const
Returns the metadata currently in gutter
at line
.
String get_line_gutter_text ( int line, int gutter ) const
Returns the text currently in gutter
at line
.
int get_line_height ( ) const
Returns the maximum value of the line height among all lines.
Note: The return value is influenced by line_spacing and font_size. And it will not be less than 1
.
int get_line_width ( int line, int wrap_index=-1 ) const
Returns the width in pixels of the wrap_index
on line
.
int get_line_wrap_count ( int line ) const
Returns the number of times the given line is wrapped.
int get_line_wrap_index_at_column ( int line, int column ) const
Returns the wrap index of the given line column.
PackedStringArray get_line_wrapped_text ( int line ) const
Returns an array of Strings representing each wrapped index.
Vector2 get_local_mouse_pos ( ) const
Returns the local mouse position adjusted for the text direction.
Returns the PopupMenu of this TextEdit. By default, this menu is displayed when right-clicking on the TextEdit.
You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see MenuItems). For example:
func _ready():
var menu = get_menu()
# Remove all items after "Redo".
menu.item_count = menu.get_item_index(MENU_REDO) + 1
# Add custom items.
menu.add_separator()
menu.add_item("Insert Date", MENU_MAX + 1)
# Connect callback.
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())
public override void _Ready()
{
var menu = GetMenu();
// Remove all items after "Redo".
menu.ItemCount = menu.GetItemIndex(TextEdit.MenuItems.Redo) + 1;
// Add custom items.
menu.AddSeparator();
menu.AddItem("Insert Date", TextEdit.MenuItems.Max + 1);
// Add event handler.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
InsertTextAtCaret(Time.GetDateStringFromSystem());
}
}
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their Window.visible property.
int get_minimap_line_at_pos ( Vector2i position ) const
Returns the equivalent minimap line at position
.
int get_minimap_visible_lines ( ) const
Returns the number of lines that may be drawn on the minimap.
Vector2i get_next_visible_line_index_offset_from ( int line, int wrap_index, int visible_amount ) const
Similar to get_next_visible_line_offset_from, but takes into account the line wrap indexes. In the returned vector, x
is the line, y
is the wrap index.
int get_next_visible_line_offset_from ( int line, int visible_amount ) const
Returns the count to the next visible line from line
to line + visible_amount
. Can also count backwards. For example if a TextEdit has 5 lines with lines 2 and 3 hidden, calling this with line = 1, visible_amount = 1
would return 3.
Vector2i get_pos_at_line_column ( int line, int column ) const
Returns the local position for the given line
and column
. If x
or y
of the returned vector equal -1
, the position is outside of the viewable area of the control.
Note: The Y position corresponds to the bottom side of the line. Use get_rect_at_line_column to get the top side position.
Rect2i get_rect_at_line_column ( int line, int column ) const
Returns the local position and size for the grapheme at the given line
and column
. If x
or y
position of the returned rect equal -1
, the position is outside of the viewable area of the control.
Note: The Y position of the returned rect corresponds to the top side of the line, unlike get_pos_at_line_column which returns the bottom side.
int get_saved_version ( ) const
Returns the last tagged saved version from tag_saved_version.
float get_scroll_pos_for_line ( int line, int wrap_index=0 ) const
Returns the scroll position for wrap_index
of line
.
String get_selected_text ( int caret_index=-1 )
Returns the text inside the selection of a caret, or all the carets if caret_index
is its default value -1
.
int get_selection_column ( int caret_index=0 ) const
Returns the original start column of the selection.
int get_selection_from_column ( int caret_index=0 ) const
Returns the selection begin column.
int get_selection_from_line ( int caret_index=0 ) const
Returns the selection begin line.
int get_selection_line ( int caret_index=0 ) const
Returns the original start line of the selection.
SelectionMode get_selection_mode ( ) const
Returns the current selection mode.
int get_selection_to_column ( int caret_index=0 ) const
Returns the selection end column.
int get_selection_to_line ( int caret_index=0 ) const
Returns the selection end line.
int get_tab_size ( ) const
Returns the TextEdit's' tab size.
int get_total_gutter_width ( ) const
Returns the total width of all gutters and internal padding.
int get_total_visible_line_count ( ) const
Returns the number of lines that may be drawn.
VScrollBar get_v_scroll_bar ( ) const
Returns the VScrollBar of the TextEdit.
int get_version ( ) const
Returns the current version of the TextEdit. The version is a count of recorded operations by the undo/redo history.
int get_visible_line_count ( ) const
Returns the number of visible lines, including wrapped text.
int get_visible_line_count_in_range ( int from_line, int to_line ) const
Returns the total number of visible + wrapped lines between the two lines.
String get_word_at_pos ( Vector2 position ) const
Returns the word at position
.
String get_word_under_caret ( int caret_index=-1 ) const
Returns a String text with the word under the caret's location.
bool has_ime_text ( ) const
Returns if the user has IME text.
bool has_redo ( ) const
Returns true
if a "redo" action is available.
bool has_selection ( int caret_index=-1 ) const
Returns true
if the user has selected text.
bool has_undo ( ) const
Returns true
if an "undo" action is available.
void insert_line_at ( int line, String text )
Inserts a new line with text
at line
.
void insert_text_at_caret ( String text, int caret_index=-1 )
Insert the specified text at the caret position.
bool is_caret_visible ( int caret_index=0 ) const
Returns true
if the caret is visible on the screen.
bool is_dragging_cursor ( ) const
Returns true
if the user is dragging their mouse for scrolling or selecting.
bool is_gutter_clickable ( int gutter ) const
Returns whether the gutter is clickable.
bool is_gutter_drawn ( int gutter ) const
Returns whether the gutter is currently drawn.
bool is_gutter_overwritable ( int gutter ) const
Returns whether the gutter is overwritable.
bool is_line_gutter_clickable ( int line, int gutter ) const
Returns whether the gutter on the given line is clickable.
bool is_line_wrapped ( int line ) const
Returns if the given line is wrapped.
Returns whether the menu is visible. Use this instead of get_menu().visible
to improve performance (so the creation of the menu is avoided).
bool is_mouse_over_selection ( bool edges, int caret_index=-1 ) const
Returns whether the mouse is over selection. If edges
is true
, the edges are considered part of the selection.
bool is_overtype_mode_enabled ( ) const
Returns whether the user is in overtype mode.
Executes a given action as defined in the MenuItems enum.
void merge_gutters ( int from_line, int to_line )
Merge the gutters from from_line
into to_line
. Only overwritable gutters will be copied.
void merge_overlapping_carets ( )
Merges any overlapping carets. Will favor the newest caret, or the caret with a selection.
Note: This is not called when a caret changes position but after certain actions, so it is possible to get into a state where carets overlap.
void paste ( int caret_index=-1 )
Paste at the current location. Can be overridden with _paste.
void paste_primary_clipboard ( int caret_index=-1 )
Pastes the primary clipboard.
void redo ( )
Perform redo operation.
void remove_caret ( int caret )
Removes the given caret index.
Note: This can result in adjustment of all other caret indices.
void remove_gutter ( int gutter )
Removes the gutter from this TextEdit.
void remove_secondary_carets ( )
Removes all additional carets.
void remove_text ( int from_line, int from_column, int to_line, int to_column )
Removes text between the given positions.
Note: This does not adjust the caret or selection, which as a result it can end up in an invalid position.
Vector2i search ( String text, int flags, int from_line, int from_colum ) const
Perform a search inside the text. Search flags can be specified in the SearchFlags enum.
In the returned vector, x
is the column, y
is the line. If no results are found, both are equal to -1
.
var result = search("print", SEARCH_WHOLE_WORDS, 0, 0)
if result.x != -1:
# Result found.
var line_number = result.y
var column_number = result.x
Vector2I result = Search("print", (uint)TextEdit.SearchFlags.WholeWords, 0, 0);
if (result.X != -1)
{
// Result found.
int lineNumber = result.Y;
int columnNumber = result.X;
}
void select ( int from_line, int from_column, int to_line, int to_column, int caret_index=0 )
Perform selection, from line/column to line/column.
If selecting_enabled is false
, no selection will occur.
void select_all ( )
Select all the text.
If selecting_enabled is false
, no selection will occur.
void select_word_under_caret ( int caret_index=-1 )
Selects the word under the caret.
void set_caret_column ( int column, bool adjust_viewport=true, int caret_index=0 )
Moves the caret to the specified column
index.
If adjust_viewport
is true
, the viewport will center at the caret position after the move occurs.
Note: If supporting multiple carets this will not check for any overlap. See merge_overlapping_carets.
void set_caret_line ( int line, bool adjust_viewport=true, bool can_be_hidden=true, int wrap_index=0, int caret_index=0 )
Moves the caret to the specified line
index.
If adjust_viewport
is true
, the viewport will center at the caret position after the move occurs.
If can_be_hidden
is true
, the specified line
can be hidden.
Note: If supporting multiple carets this will not check for any overlap. See merge_overlapping_carets.
void set_gutter_clickable ( int gutter, bool clickable )
Sets the gutter as clickable. This will change the mouse cursor to a pointing hand when hovering over the gutter.
void set_gutter_custom_draw ( int column, Callable draw_callback )
Set a custom draw method for the gutter. The callback method must take the following args: line: int, gutter: int, Area: Rect2
.
void set_gutter_draw ( int gutter, bool draw )
Sets whether the gutter should be drawn.
void set_gutter_name ( int gutter, String name )
Sets the name of the gutter.
void set_gutter_overwritable ( int gutter, bool overwritable )
Sets the gutter to overwritable. See merge_gutters.
void set_gutter_type ( int gutter, GutterType type )
Sets the type of gutter.
void set_gutter_width ( int gutter, int width )
Set the width of the gutter.
void set_line ( int line, String new_text )
Sets the text for a specific line.
void set_line_as_center_visible ( int line, int wrap_index=0 )
Positions the wrap_index
of line
at the center of the viewport.
void set_line_as_first_visible ( int line, int wrap_index=0 )
Positions the wrap_index
of line
at the top of the viewport.
void set_line_as_last_visible ( int line, int wrap_index=0 )
Positions the wrap_index
of line
at the bottom of the viewport.
void set_line_background_color ( int line, Color color )
Sets the current background color of the line. Set to Color(0, 0, 0, 0)
for no color.
void set_line_gutter_clickable ( int line, int gutter, bool clickable )
If clickable
is true
, makes the gutter
on line
clickable. See gutter_clicked.
void set_line_gutter_icon ( int line, int gutter, Texture2D icon )
Sets the icon for gutter
on line
to icon
.
void set_line_gutter_item_color ( int line, int gutter, Color color )
Sets the color for gutter
on line
to color
.
void set_line_gutter_metadata ( int line, int gutter, Variant metadata )
Sets the metadata for gutter
on line
to metadata
.
void set_line_gutter_text ( int line, int gutter, String text )
Sets the text for gutter
on line
to text
.
void set_overtype_mode_enabled ( bool enabled )
If true
, sets the user into overtype mode. When the user types in this mode, it will override existing text.
void set_search_flags ( int flags )
Sets the search flags
. This is used with set_search_text to highlight occurrences of the searched text. Search flags can be specified from the SearchFlags enum.
void set_search_text ( String search_text )
Sets the search text. See set_search_flags.
void set_selection_mode ( SelectionMode mode, int line=-1, int column=-1, int caret_index=0 )
Sets the current selection mode.
void set_tab_size ( int size )
Sets the tab size for the TextEdit to use.
void set_tooltip_request_func ( Callable callback )
Provide custom tooltip text. The callback method must take the following args: hovered_word: String
.
void start_action ( EditAction action )
Starts an action, will end the current action if action
is different.
An action will also end after a call to end_action, after ProjectSettings.gui/timers/text_edit_idle_detect_sec is triggered or a new undoable step outside the start_action and end_action calls.
void swap_lines ( int from_line, int to_line )
Swaps the two lines.
void tag_saved_version ( )
Tag the current version as saved.
void undo ( )
Perform undo operation.
Theme Property Descriptions¶
Color background_color = Color(0, 0, 0, 0)
Sets the background Color of this TextEdit.
Color caret_background_color = Color(0, 0, 0, 1)
Color of the text behind the caret when using a block caret.
Color caret_color = Color(0.875, 0.875, 0.875, 1)
Color of the caret. This can be set to a fully transparent color to hide the caret entirely.
Color current_line_color = Color(0.25, 0.25, 0.26, 0.8)
Background Color of the line containing the caret.
Color font_color = Color(0.875, 0.875, 0.875, 1)
Sets the font Color.
Color font_outline_color = Color(1, 1, 1, 1)
The tint of text outline of the TextEdit.
Color font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6)
Font color for placeholder_text.
Color font_readonly_color = Color(0.875, 0.875, 0.875, 0.5)
Sets the font Color when editable is disabled.
Color font_selected_color = Color(0, 0, 0, 0)
Sets the Color of the selected text. If equal to Color(0, 0, 0, 0)
, it will be ignored.
Color search_result_border_color = Color(0.3, 0.3, 0.3, 0.4)
Color of the border around text that matches the search query.
Color search_result_color = Color(0.3, 0.3, 0.3, 1)
Color behind the text that matches the search query.
Color selection_color = Color(0.5, 0.5, 0.5, 1)
Sets the highlight Color of text selections.
Color word_highlighted_color = Color(0.5, 0.5, 0.5, 0.25)
Sets the highlight Color of multiple occurrences. highlight_all_occurrences has to be enabled.
int caret_width = 1
The caret's width in pixels. Greater values can be used to improve accessibility by ensuring the caret is easily visible, or to ensure consistency with a large font size. If set to 0
or lower, the caret width is automatically set to 1 pixel and multiplied by the display scaling factor.
int line_spacing = 4
Sets the spacing between the lines.
int outline_size = 0
The size of the text outline.
Note: If using a font with FontFile.multichannel_signed_distance_field enabled, its FontFile.msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
Font font
Sets the default Font.
int font_size
Sets default font size.
Texture2D space
Sets a custom Texture2D for space text characters.
Texture2D tab
Sets a custom Texture2D for tab text characters.
StyleBox focus
Sets the StyleBox when in focus. The focus
StyleBox is displayed over the base StyleBox, so a partially transparent StyleBox should be used to ensure the base StyleBox remains visible. A StyleBox that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a StyleBoxEmpty resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
StyleBox normal
Sets the StyleBox of this TextEdit.
StyleBox read_only
Sets the StyleBox of this TextEdit when editable is disabled.