Up to date
This page is up to date for Godot 4.0
. If you still find outdated information, please open an issue.
TextEdit
Inherits: Control < CanvasItem < Node < Object
Inherited By: CodeEdit
A multiline text editor.
Description
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.
Properties
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
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
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
Signals
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 then to_line
. On a remove to_line
will be less then from_line
.
text_changed ( )
Emitted when the text changes.
text_set ( )
Emitted when clear is called or text is set.
Enumerations
enum MenuItems:
MenuItems MENU_CUT = 0
Cuts (copies and clears) the selected text.
MenuItems MENU_COPY = 1
Copies the selected text.
MenuItems MENU_PASTE = 2
Pastes the clipboard text over the selected text (or at the cursor’s position).
MenuItems MENU_CLEAR = 3
Erases the whole TextEdit text.
MenuItems MENU_SELECT_ALL = 4
Selects the whole TextEdit text.
MenuItems MENU_UNDO = 5
Undoes the previous action.
MenuItems MENU_REDO = 6
Redoes the previous action.
MenuItems MENU_SUBMENU_TEXT_DIR = 7
ID of “Text Writing Direction” submenu.
MenuItems MENU_DIR_INHERITED = 8
Sets text direction to inherited.
MenuItems MENU_DIR_AUTO = 9
Sets text direction to automatic.
MenuItems MENU_DIR_LTR = 10
Sets text direction to left-to-right.
MenuItems MENU_DIR_RTL = 11
Sets text direction to right-to-left.
MenuItems MENU_DISPLAY_UCC = 12
Toggles control character display.
MenuItems MENU_SUBMENU_INSERT_UCC = 13
ID of “Insert Control Character” submenu.
MenuItems MENU_INSERT_LRM = 14
Inserts left-to-right mark (LRM) character.
MenuItems MENU_INSERT_RLM = 15
Inserts right-to-left mark (RLM) character.
MenuItems MENU_INSERT_LRE = 16
Inserts start of left-to-right embedding (LRE) character.
MenuItems MENU_INSERT_RLE = 17
Inserts start of right-to-left embedding (RLE) character.
MenuItems MENU_INSERT_LRO = 18
Inserts start of left-to-right override (LRO) character.
MenuItems MENU_INSERT_RLO = 19
Inserts start of right-to-left override (RLO) character.
MenuItems MENU_INSERT_PDF = 20
Inserts pop direction formatting (PDF) character.
MenuItems MENU_INSERT_ALM = 21
Inserts Arabic letter mark (ALM) character.
MenuItems MENU_INSERT_LRI = 22
Inserts left-to-right isolate (LRI) character.
MenuItems MENU_INSERT_RLI = 23
Inserts right-to-left isolate (RLI) character.
MenuItems MENU_INSERT_FSI = 24
Inserts first strong isolate (FSI) character.
MenuItems MENU_INSERT_PDI = 25
Inserts pop direction isolate (PDI) character.
MenuItems MENU_INSERT_ZWJ = 26
Inserts zero width joiner (ZWJ) character.
MenuItems MENU_INSERT_ZWNJ = 27
Inserts zero width non-joiner (ZWNJ) character.
MenuItems MENU_INSERT_WJ = 28
Inserts word joiner (WJ) character.
MenuItems MENU_INSERT_SHY = 29
Inserts soft hyphen (SHY) character.
MenuItems MENU_MAX = 30
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 tripped 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
bool caret_blink = false
Sets if the caret should blink.
float caret_blink_interval = 0.65
Duration (in seconds) of a caret’s blinking cycle.
bool caret_mid_grapheme = true
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.
bool context_menu_enabled = true
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.
int get_last_unhidden_line ( ) const
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.
PopupMenu get_menu ( ) const
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:
GDScriptC#
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.
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.
bool is_menu_visible ( ) const
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.
void menu_option ( int option )
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
.
GDScriptC#
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.